## 概要 [Task1828: IDトークンを一度しか使えないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1828) - 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず) ログイン時にRedisを参照し、同じIDトークンでアクセスされていた場合はアクセスを拒否する。 初めて認証で使われるIDトークンの場合は、Redisに保存する(有効期限は300秒(IDトークンの有効期限の最小値)) ログイン後、クライアントはローカルストレージの不要な情報を破棄する(accessToken,refreshToken,displayInfo以外) - 影響範囲(他の機能にも影響があるか) 新規機能のため、なし。 ## レビューポイント - keyの形式id-token:{idトークンの中身}は想定通りか。 - ログイン後のローカルストレージの状態が想定通りか。 - controllerやservice層の実装箇所が妥当か。 - stg環境、本番環境のIDトークンの有効期限を最小値に設定するタスクを備忘用PBIに切り出しました。 https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2021-1?workitem=3041 ## UIの変更 https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task1828?csf=1&web=1&e=1Sc1VP ## 動作確認状況 - ローカルで確認 ## 補足 - 相談、参考資料などがあれば
29 lines
817 B
TypeScript
29 lines
817 B
TypeScript
import { ADB2C_PREFIX, IDTOKEN_PREFIX } from './constants';
|
|
|
|
/**
|
|
* ADB2Cのユーザー格納用のキーを生成する
|
|
* @param externalId 外部ユーザーID
|
|
* @returns キャッシュのキー
|
|
*/
|
|
export const makeADB2CKey = (externalId: string): string => {
|
|
return `${ADB2C_PREFIX}${externalId}`;
|
|
};
|
|
|
|
/**
|
|
* ADB2Cのユーザー格納用のキーから外部ユーザーIDを取得する
|
|
* @param key キャッシュのキー
|
|
* @returns 外部ユーザーID
|
|
*/
|
|
export const restoreAdB2cID = (key: string): string => {
|
|
return key.replace(ADB2C_PREFIX, '');
|
|
};
|
|
|
|
/**
|
|
* ADB2CのIDトークン格納用のキーを生成する
|
|
* @param idToken IDトークン
|
|
* @returns キャッシュのキー
|
|
*/
|
|
export const makeIDTokenKey = (idToken: string): string => {
|
|
return `${IDTOKEN_PREFIX}${idToken}`;
|
|
};
|