## 概要 [Task: 1471](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%203-2?workitem=1471) - アクセストークンの自動更新処理を実装 - UpdateTokenTimerで定期実行を行う - 未ログインまたはトークンが期限切れの状態で、ログイン後の画面にアクセスした場合、Topページにリダイレクトする処理を実装 - RouteAuthGuard.tsx - APIからのレスポンスが401だった時にTopページにリダイレクトする処理を実装 - App.tsx ## レビューポイント - 今の実装だとトークンの自動更新に失敗した場合、画面上では何も起こらないようにになっている - 更新が失敗し続け、アクセストークンが切れた段階でRouteAuthGuardではじかれてTopへリダイレクトする - トークンの期限を確認する間隔を3分にしているが問題なさそうか ## UIの変更 - ## 動作確認状況 - ローカルで動作確認 ## 補足
28 lines
562 B
TypeScript
28 lines
562 B
TypeScript
// トークンの型やtypeGuardの関数を配置するファイル
|
|
// TODO トークンの型は仮
|
|
export interface Token {
|
|
userId: string;
|
|
scope: string;
|
|
exp: number;
|
|
iat: number;
|
|
}
|
|
|
|
// Type Guard
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
export const isToken = (arg: any): arg is Token => {
|
|
if (arg.userId === undefined) {
|
|
return false;
|
|
}
|
|
if (arg.scope === undefined) {
|
|
return false;
|
|
}
|
|
if (arg.exp === undefined) {
|
|
return false;
|
|
}
|
|
if (arg.iat === undefined) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
};
|