ryota1116 / stacked_books_ui

stacked_booksのUI_React
0 stars 0 forks source link

会員登録・ログイン機能 #19

Open ryota1116 opened 2 years ago

ryota1116 commented 2 years ago

概要

認証手順

初回ログイン時

  1. サーバーサイドにログインリクエストを投げる
  2. レスポンスボディにトークンとユーザーの情報が乗ったレスポンスが返ってくる
  3. ローカルストレージにトークンを保存する
  4. Stateを更新する(isLoggedInをtrueにする)

2回目以降のリクエスト

  1. isLoggedInがtrueになっている(はず)場合、ローカルストレージからトークンを取り出し、リクエストヘッダー(Authorization)にトークンを乗せてリクエストを投げる
  2. サーバーサイドが認証処理を行う ※これでユーザーは毎回ログインしなくても、マイページへのリクエストをすればユーザーの情報が返ってくるし、マイ書籍へのリクエストをすればマイ書籍が返ってくる

リロード時

  1. stateが初期化されてisLoggedInがfalseになっているはずなので、falseになっている場合ローカルストレージからトークンを取得する。
  2. 取得できた場合はトークンを使ってログイン処理を行う
    1. ログインできた場合は、受け取ったユーザー情報を使ってページを表示する
    2. ログインできなかった場合(トークンが古い等)は、ログインページに遷移する
  3. 取得できなかった場合はログインページに遷移する

※もしトークンの有効期限が切れていると特定のレスポンスが返ってくるので、ログインページに遷移すればいい。

きになる箇所

本当にローカルストレージでセキュリティ的に大丈夫か検討したい。

参考