Learn-json-web-tokens: рд╡реЗрдм рднрдВрдбрд╛рд░рдг рдФрд░ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реГрджреНрдзрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдХреНрддреВре░ 2015  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dwyl/learn-json-web-tokens

#5, #46 рдФрд░ рдСрдирд▓рд╛рдЗрди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ, рд▓реЛрдЧ рдХреБрдХреА рдХреЗ рдмрдЬрд╛рдп JWTs рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЧреНрд░рд╣рдг/рд╕рддреНрд░ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдРрдк рдореЗрдВ AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣реЗрдбрд░ рдХреЛ рд╣рд░ рдмрд╛рд░ рд╡реЗрдм рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рдЕрдиреБрд░реЛрдз рдЬрд╛рд▓рд╕рд╛рдЬреА рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди-рдореВрд▓ рдиреАрддрд┐ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд░рд╣рд╛ рд╣реИ)ред

рдпрд╣ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреБрдЫ рдбрд┐рд╡рд╛рдЗрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?

enhancement question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЯреВрд▓рд╕реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ .. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ jQuery рдХреЗ рд╕рд╛рде рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк 2 рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ CORS рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдХреБрдХреАрдЬрд╝ RESTful рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдПрдХ рдХреБрдХреА рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рд╡рди рд▓рд╛рдЗрдирд░ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

_рдПрдХ рдФрд░_ _рдорд╣рд╛рди
рдЗрд╕ рд╕реВрдХреНрд╖реНрдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ "_Ok_" localStorage ред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реВрдВ рддреЛ _рд╣рд░ рдХреЛрдИ рдЗрди рджрд┐рдиреЛрдВ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХреЛ рд▓реЗрдХрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред
рд╕рднреА рдЕрдЪреНрдЫреЗ рдмрдЪреНрдЪреЗ _рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд╡рд░реНрдзрди_ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ _рдЪрдордХрджрд╛рд░ рдирдП рдврд╛рдВрдЪреЗ_ рдореЗрдВ _рд╡реЗ_ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ...

рддрдерд╛рдкрд┐...
рд╣рдорд╛рд░реЗ _actual_ рдРрдк рдореЗрдВ рд╣рдо рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ рдФрд░ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП cookies _precisely_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ JWT2 рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рд╣реИ ... рджреЗрдЦреЗрдВ: https://github.com/dwyl/hapi-auth-jwt2#want -to-sendstore-your-jwt-in-a-cookie

рддреЛ рдЕрдВрдд рдореЗрдВ: рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ localStorage рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдФрд░ рдПрдХ рдЬреЛрдбрд╝рдиреЗ comment рдмрддрд╛рдП рд▓реЛрдЧреЛрдВ рдХреА рд╣реИ рдХрд┐ JWTs рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд┐ "_Ohkay_" рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрднреА рднреА рдорд┐рд▓рддрд╛ рд╣реИ рд╕рдм _horizontal scalability_ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ JWT рдХреЛ рд╕реЗрдЯ/рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рд╣реЗрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП _effort_ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп JWTs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн ...

@rjmk рдФрд░ @nelsonic

рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд JWTS рдХреЛ рд╣реЗрдбрд░ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ https://www.npmjs.com/package/node-localstorage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрдордЬреЛрд░/"рдЧрд▓рдд" рд╣реИ

@Jbarget рдХреНрдпрд╛ рдЖрдк рдПрдХ "_Universal_" рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ localStorage рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рд╡рд╣ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ рддреЛ node-localstorage рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рдкреВрд░реНрддрд┐ рдХрд░реЗрдЧрд╛ред
_рд╣рд╛рд▓рд╛рдБрдХрд┐_ рдЖрдкрдХреЛ рдЕрднреА рднреА "AJAX" рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП JWT рдХреЛ header рдореЗрдВ _рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ ... localStorage рд╕реЗ/рд╕реЗ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд/рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...

@nelsonic рд╣рдо рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рд╕реЗрдЯ рдХрд░ рджреЗрдВрдЧреЗ, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@Jbarget рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ JWT рдХреЛ рдХреБрдХреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _objection_ рд╣реИ? (_рдпрд╣ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ..._)

@nelsonic рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рд╕реНрдерд╛рдиреАрдп/рд╕рддреНрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд рдРрдк рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рдХреБрдХреАрдЬрд╝ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓

рдпрд╣ рдЖрдкрдХреЗ рдРрдк рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдХреБрдХреА _set_ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рднреЗрдЬреЗ/рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП _all_ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреБрдХреА рд╣реЛрддреА рд╣реИред рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рднреА рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд localStorage рдореЗрдВ JWT рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧреИрд░-AJAX рдЗрдВрдЯрд░реИрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП SET auth рд╣реЗрдбрд░ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред .

рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЯреВрд▓рд╕реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рдЖрдкрдХреЛ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ .. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ jQuery рдХреЗ рд╕рд╛рде рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк 2 рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ CORS рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдХреБрдХреАрдЬрд╝ RESTful рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдПрдХ рдХреБрдХреА рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рд╡рди рд▓рд╛рдЗрдирд░ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдирд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

joepie91 picture joepie91  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alanshaw picture alanshaw  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rhewitt22 picture rhewitt22  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NE-SmallTown picture NE-SmallTown  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sarneeh picture sarneeh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ