Express.JS рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
app.use(express.basicAuth('username', 'password'));
Middleware рднреА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде:
app.use(express.basicAuth(function(user, pass, next) { var result = (user === 'testUser' && pass === 'testPass'); next(null , result); }));
рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдпреВрдЖрд░рдПрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд░рд╛рдЙрдЯрд░ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ред рд╡рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
var auth = express.basicAuth(function(user, pass, next) { var result = (user === 'testUser' && pass === 'testPass'); next(null, result); }); app.get('/home', auth, function(req, res) { res.send('Hello World'); });
рдпрджрд┐ рдЖрдк рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗрди рдЖрд░реЗрдЦ рдкрд░ рдЬреЛ рд▓реЛрдЧ рд╣рд▓рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╣реИрдВ "рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ" рдФрд░ "рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ", рдореИрдВ рдЖрдкрдХреЛ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
basicAutn
рдХрдиреЗрдХреНрдЯ рд╕реЗ рд╡реНрдпрдХреНрдд рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдкреЗрдЬ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ
WWW-Authenticate
рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ:
res.statusCode = 401; res.setHeader('WWW-Authenticate', 'Basic realm="' + realm + '"'); res.end('Unauthorized');
рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░, рдЗрдирдкреБрдЯ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рд╕рд░реНрд╡рд░ рдХреЛ рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░, рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=
, рдЬрд╣рд╛рдБ
dXNlcm5hbWU6cGFzc3dvcmQ=
рд╕реНрдЯреНрд░рд┐рдВрдЧ 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: рдкрд╛рд╕рд╡рд░реНрдб' рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
var str = new Buffer('dXNlcm5hbWU6cGFzc3dvcmQ=', 'base64').toString() console.log(str)
рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдЧрд╛, рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд░реВрдк рд╕реЗ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рддрдВрддреНрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдХ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдмреЗрд╕рд┐рдХ рдСрдЙрдЯ рдХреЗ рдЕрдВрджрд░ рдЬреЛ рд╣реЛрддрд╛ рд╣реИ рдЙрд╕рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб
рдХрдиреЗрдХреНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред