egg-jwt
2159 ワード
1.0 jwt考え方ユーザーはユーザー名とパスワードを入力してログインし、ユーザー名とパスワードが正しい場合はjsonwebtoken.sign()を使用してtokenを生成し、クライアントに返します. クライアントはtokenをローカルに格納し、HTTPリクエストごとにtokenをHTTPヘッダAuthorazition:Bearer tokenに追加する. その後、バックエンドはtokenの正しいかどうかを検証する.対応するリソースにアクセスできるのはtokenが正しい場合のみです.
github
1.1インストール依存
1.2 jwtのsecret(鍵)の構成
config\config.default.js
1.3ユーザー登録、
app\controller\home.js
1.4 sign署名最初のパラメータ、暗号化するデータ 2番目のパラメータ、暗号化された鍵 3番目のパラメータ、オブジェクト、有効期限
1.5 verify検査`
1.6効果
転載先:https://juejin.im/post/5cc6a5dee51d456e4b3c6f18
github
1.1インストール依存
cnpm install jsonwebtoken --save
1.2 jwtのsecret(鍵)の構成
config\config.default.js
config.jwt = {
secret: ' ',
};
1.3ユーザー登録、
userId
に従ってjwtを格納するapp\controller\home.js
async jwt() {
const { ctx } = this;
const userId = '123456';
const result = await ctx.service.jwt.signJwt(userId);
const data = await ctx.service.jwt.verifyJwt(result);
ctx.body = data;
}
1.4 sign署名
async signJwt(userId) {
const { ctx } = this;
const token = jwt.sign({ userId }, this.config.jwt.secret, {
expiresIn: 60,
});
return token;
}
1.5 verify検査`
async verifyJwt(token) {
const { ctx } = this;
try {
let hasToken = false;
const userId = jwt.verify(token, this.config.jwt.secret).userId;
console.log(userId);
if (userId == '123456') {
hasToken = true;
return hasToken;
}
return hasToken;
} catch (err) {
throw (err);
}
}
1.6効果
転載先:https://juejin.im/post/5cc6a5dee51d456e4b3c6f18