Hyperlane માં Authentication Middleware

કોઈપણ વેબ એપ્લિકેશન માટે સુરક્ષા એ પ્રાથમિકતા છે. તમારા સંસાધનો (resources) કોણ વાપરી શકે છે તેના પર તમારે નિયંત્રણ રાખવું જોઈએ. Hyperlane માં, તમે આ કરવા માટે middleware નો ઉપયોગ કરો છો. Middleware એક ગેટકીપર (gatekeeper) તરીકે કામ કરે છે. તે તમારા કોડ સુધી પહોંચતા પહેલા વિનંતીઓને (requests) રોકે છે.

Hyperlane Middleware કેવી રીતે કામ કરે છે

Middleware ServerHook trait નો ઉપયોગ કરે છે. તેના બે મુખ્ય ભાગો છે:

new(): કનેક્શન સેટઅપ કરે છે. • handle(): દરેક request માટે ચાલે છે. અહીં તમે સુરક્ષા તપાસો છો.

handle મેથડ એક સ્ટેટસ રિટર્ન કરે છે:

Status::Continue: વિનંતી સુરક્ષિત છે. તેને આગળ જવા દો. • Status::Reject: વિનંતી અસુરક્ષિત છે. તેને અહીં જ અટકાવો.

સામાન્ય Authentication Patterns

  1. Header Checks તમે Authorization header તપાસી શકો છો. જો header ન હોય, તો 401 Unauthorized સ્ટેટસ રિટર્ન કરો. વિનંતીને તરત જ નકારી કાઢો.

  2. Bearer Tokens મોટાભાગની APIs Bearer tokens નો ઉપયોગ કરે છે. તમારા middleware એ આ કરવું જોઈએ: • Header "Bearer " થી શરૂ થાય છે કે નહીં તે તપાસો. • Token એક્સટ્રેક્ટ (extract) કરો. • પછીથી ઉપયોગ કરવા માટે token ને context માં સ્ટોર કરો.

  3. Attribute Filtering Hyperlane તમને સરળ macros નો ઉપયોગ કરીને requests ફિલ્ટર કરવાની મંજૂરી આપે છે. તમે આ રીતે એક્સેસ મર્યાદિત કરી શકો છો: • HTTP methods (જેમ કે GET અથવા POST). • Host names. • ચોક્કસ paths. • Referer headers.

સુરક્ષિત APIs માટે શ્રેષ્ઠ પદ્ધતિઓ (Best Practices)

• Fail fast. સર્વરના સંસાધનો બચાવવા માટે ખરાબ વિનંતીઓને વહેલી તકે નકારી કાઢો. • Context attributes નો ઉપયોગ કરો. પ્રમાણિત (validated) tokens ને context માં સ્ટોર કરો જેથી તમારી એપ્લિકેશનના અન્ય ભાગો તેને ફરીથી parse કર્યા વગર વાંચી શકે. • CORS ને યોગ્ય રીતે હેન્ડલ કરો. authentication કરતા પહેલા તમારા CORS headers સેટ કરો. આ સુનિશ્ચિત કરે છે કે બ્રાઉઝર ભૂલના સંદેશાઓ (error messages) વાંચી શકે. • તમારા middleware ને લેયર કરો. ક્રમ નક્કી કરવા માટે priority numbers નો ઉપયોગ કરો. પહેલા CORS ચલાવો, પછી authentication. • Streams મેનેજ કરો. જો વિનંતી મોકલવામાં નિષ્ફળ જાય, તો ભૂલો રોકવા માટે stream બંધ કરી દો.

આ સાધનોનો ઉપયોગ કરીને, તમે સુરક્ષિત અને વ્યવસ્થિત સિસ્ટમ બનાવી શકો છો.

Source: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Project Code: https://github.com/hyperlane-dev/hyperlane