2つの認証
よくあるやつ
O-Auth2.0
概要
- 簡単に言うとAPPサーバとは別に認可サーバをたてるか、使わせてもらってアクセストークンをもらう
- アクセストークンとはつまり入場券
- これをもってAPPサーバにアクセスするとAPPサーバにアクセスできる
- アクセルトークンはJWTにして送られることがよくある
jwt認証
概要
なぜjwt認証するのか
- o-auth2.0認証の場合、本来ならばクライアントアプリは、前述アクセストークンを認可サーバで認証して随時もらってからAPPサーバに接続する
- basic認証でも随時、セッションIDをサーバサイドサーバ側で保持して、クッキーのセッションIDと称号する処理を毎回フロントエンドサーバで実施する
- 以上のような都度サーバサイド側での称号をしないために、jwtにして、クライアントにはクッキーにして保持してもらって、リクエスト時に、リクエストヘッダーにjwtを入れてAPIを読んでもらう
- jwtが不正だったらエラーが返却される
jwtのサンプル
jwtライブラリ
$ npm install --save jsonwebtoken
$ npm install --save @types/jsonwebtoken
jwtサンプル
mport * as jwt from 'jsonwebtoken';
const jwtPayload = {
email: 'xx@xx.com',
name: 'おれ',
};
const jwtSecret = 'secret_key_goes_here';
const jwtOptions = {
algorithm: 'HS256',
expiresIn: 'Xs',
};
const token = jwt.sign(jwtPayload, jwtSecret, jwtOptions);
import * as jwt from 'jsonwebtoken';
const jwtSecret = 'secret_key_goes_here';
const token = '...';
// 検証
jwt.verify( token, jwtSecret, (err: any, decoded: any) => {
if (err) {
} else {
}
});