# 12/1 **備忘録** 1.Cognitoだとログインに関するトークンがid token,session token,refresh token の3種類がある 2.セッション情報は何もしない限り永続にローカルストレージに残る 3 ローカルストレージはドメイン毎の情報を永続的に保存する   →問題が共用PC等でログアウトし忘れるとなりすましが簡単になってしまう 4 トークンの2種類(id tokenやsession token)は1時間で期限が切れるため平気だが、   refresh tokenの有効期限はAWS側で設定するので、   設定期間を間違えるとブラウザを閉じても期間内であれば認証しないでそのままログインできてしまう。 →改善策としては、CognitoUserPoolおよびCognitoUserの constractorにStorageオプションが追加されたので、 ここにセッションストレージを指定することで ブラウザを閉じた時に情報を削除させることができるようになった。 参考URL↓ https://qiita.com/kyane/items/e3dc8d4d22236fb2a4c4 5.今のテストアプリだとローカルストレージに何もない 6.ユーザーをグループに分けて(Cognitoの機能)、そのグループ毎にアクセス権を変えるのが理想(例えばA社ならプロジェクト1,2,3を使っているのでA社のグループに所属しているユーザーにその3つにのみアクセス権を付与する等) 課題点 1.まずトークンをどこで保存させるか。(ユーザーが気を付ければ共有PC等でログインしっぱなしにはならない。また連日使う際に毎回認証し直す必要はないため便利ではある) 2.トークンの保存日数をどうするか(デフォルトだと30日だが1か月間ログイン情報が残るのは厳しい) 3.ログアウト処理をつけてトークン管理をする その他 1.理想はブラウザを閉じる毎にセッションを消すことでなりすまし等の悪用を防ぐことができる(その分毎回ユーザー認証があるため少し不便ではある) 2.API設計のレスポンスをNoSQL型に変更しておく(12/8にやる) →ユーザーに関する情報が全部欲しい(ログイン時に)(所属している会社やそのプロジェクト一覧等)フロントの要望 3.JSの実行環境を整える