рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ
рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢
рдХрд░реВрдВрдЧрд╛ред рдЬреЗрдПрд╕ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдпрд╛рдиреА рдЗрд╕ рддрд░рд╣, рдЬрд╣рд╛рдВ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рднрд╛рдЧ - рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдПред рдЪреВрдВрдХрд┐
рдПрдХреНрд╕рдкреНрд░реЗрд╕.рдЬреЗрдПрд╕ рдХрдиреЗрдХреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд▓рд┐рдЦреА рдЧрдИ рд▓рдЧрднрдЧ рд╕рднреА рдЪреАрдЬреЗрдВ рдЗрд╕ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб рдХреНрдпрд╛ рд╣реИред рдЬреЗрдПрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЖрдЗрдП рдпрд╣ рднреА рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕рд╛рдЗрдЯ рд╣реИ рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВред рдРрд╕реА рд╕рд╛рдЗрдЯ
рдХреЗ рд╕реНрд░реЛрдд, рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд
рд╕рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯ рдкрд░ рд░рд╣рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕рдордп рдХреА рдЕрд╡рдзрд┐ред рд╕рддреНрд░ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рд╛рдЗрдЯ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдпрд╛ рдЬрдм рд╕рд╛рдЗрдЯ рдЗрд╕реЗ рдмрд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИ)ред рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ:
- рдЕрджреНрд╡рд┐рддреАрдп рд╕рддреНрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
- рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо (рдпрджрд┐ рд╡рд╣ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ)
- рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдЬрд╛рдирдХрд╛рд░реА: рдЖрдИрдкреА-рдкрддрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ
- рдХреЛрдИ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдЬреЛ рд╕рд╛рдЗрдЯ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕реНрдЯреЛрд░ рдПрдХ рд╕рддреНрд░ рдореЗрдВ рдЯреЛрдХрд░реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рд╕рддреНрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "рдбреАрдмреА рдЯреЗрдмрд▓" рдХрд╣рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╕рддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░
рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ (рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореЗрдореЛрд░реА рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ)ред рдпрджрд┐ рдпрд╣ OpenID / OAuth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдмрд╛рд╣рд░ рд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИред
рдХрдиреЗрдХреНрдЯ
connect
рдПрдХ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ:
app.use(connect.cookieParser()); app.use(connect.session({ secret: 'your secret here'} ));
рдЖрджреЗрд╢ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд╣рд▓рд╛ рдирд┐рдпрдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛
session
рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд╛рдорд╛рдиреНрдп
request
рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрд░ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ (рдпрд╣ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред
connect.session
рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:
secret
- рдПрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛ рдХреБрдХреАрдЬрд╝ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредstore
- рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рддреНрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдЧреЛрдбрдм , рд░реЗрдбрд┐рд╕ , рдорд╛рдИрдПрд╕рдХреНрдпреВрдПрд▓ , рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВредcookie
рдХреБрдХреА рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг maxAge
, рдЬреАрд╡рдирдХрд╛рд▓ рдорд┐рд▓реАрд╕реЗрдХрдВрдб (рдпрд╛ рдЕрд╢рдХреНрдд) рдореЗрдВ
рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
connect
рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ
session
рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдБ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рд╡рд╣ рд╕рд╣реА рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ), рддреЛ рд╣рдореЗрдВ рд╕рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
if ((request.body.login==='Thor')&&(request.body.password==='111')) { request.session.authorized = true; request.session.username = request.body.login; console.log('Thor is here!'); }
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ
username
рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ
рдХрд┐рдпрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рддрдм рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХреГрдд рд╣реИ рдмрджрд╕реВрд░рдд рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
if (typeof req.session.username == 'undefined') {
рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЬреЛрдбрд╝реЗ рдЧрдП рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:
delete req.session.authorized; delete req.session.username ;
рдПрдХ рдкреВрд░реНрдг рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП, рдПрдХ
session.destroy () рд╡рд┐рдзрд┐ рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рд╕реЗ
session
рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг
рдЬрдм рднреА рдЖрдкрдХреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреГрд╖реНрда рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди request.session.authorized рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдпрд╣ рдЙрд╕
рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ, рдпрд╣ "рд╕реНрддрд░рд┐рдд"
connect
рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рд╕реЗрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдФрд░, рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреНрд░реБрдЯрд┐ рдкреГрд╖реНрда рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВред рд╡рд┐рдЪрд╛рд░
рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд
рд╣реИ , рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣реЛрдЧрд╛
рд╡рд╣ рд╕рдм рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред