🎟️
Node Express Passport Berar認証
Berar Tokenとは
Bearer=持ってきた人、つまり「持参人」。Tokenは「切符」のことです。切符を持参した人なので個人が誰であり、「切符」を持ってきた人は誰でも入場できるというものです。
作成方法
ディレクトリを作成します。
md bearer
cd bearer
プロジェクトを初期化します。
npm init -y
必要なモジュールをインストールします。
npm install express passport passport-http-bearer
ファイル名app.jsを新規作成、下記のコードを記載します。
const express = require('express');
const passport = require('passport');
const Strategy = require('passport-http-bearer').Strategy;
const record = {
id: 1,
username: 'taro',
token: '123456789',
emails: [{
value: 'taro@ulinco.com'
}]
}
passport.use(new Strategy(
(token, cb) => {
if (token === record.token) {
return cb(null, record.username);
} else {
return cb(null, false)
}
}
));
const app = express();
app.get('/',
passport.authenticate('bearer', {
session: false
}), (req, res) => {
res.json({
username: record.username,
email: record.emails[0].value
})
});
app.listen(3000, () => console.log('listening on port 3000!'))
node app.js
次にVisual Studio Codeの機能拡張で、Rest Clientをインストールし同じフォルダにサーバーに認証されたユーザーのuser.httpを作成し下記を記載します。
###
GET http://127.0.0.1:3000/
Authorization: Bearer 123456789
###
GET http://127.0.0.1:3000/?access_token=123456789
Send Requestを押すと認証し、ユーザーIDとemailを返却するレスポンスが返却されます。
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 45
ETag: W/"2d-tHw1sSDlim8yPRGkLwiZhCx/A2s"
Date: Thu, 30 Jun 2022 12:43:27 GMT
Connection: close
{
"username": "taro",
"email": "taro@ulinco.com"
}
Discussion