Skip to content

Draft: Cookieでの認証#128

Open
rkun123 wants to merge 2 commits intodevelopfrom
feature/cookie-based-auth
Open

Draft: Cookieでの認証#128
rkun123 wants to merge 2 commits intodevelopfrom
feature/cookie-based-auth

Conversation

@rkun123
Copy link
Contributor

@rkun123 rkun123 commented Nov 27, 2022

今まで: LocalStorageにアクセストークンとリフレッシュトークン

  • LocalStorageはJavaScriptのAPIから取得することができるため、期限の短いアクセストークンと、それを再取得するためのリフレッシュトークンを利用していた。

以後: Cookieにアクセストークン(JWT)を格納

set-cookieヘッダーに有効期限が数日のJWTを格納し、

  • SameSite=Strict
  • HttpOnly

といった属性を設定する。
これによって意図しないサーバーにCookieが送信されることはなく、JavaScript上からも取得は出来ないが、Ajaxリクエストにはブラウザが自動でCookieを付与するため、問題ない。

ログイン処理

ログイン処理は今までよりもシンプルになる。
認可後、Discordからサーバーに対してリダイレクトされるとサーバー側でJWTを生成する。
その後、クライアントへリダイレクトする際にレスポンスへset-cookieヘッダを付与しておく。

フロントエンド側ではmiddlewareにて/users/@meをリクエストし、200が返れば認証済みとしてauthStoreにユーザー情報を保存。403を返された場合は、認証済みでは無いため保存せず続行する。

ログアウト処理

set-cookieヘッダにてexpiredを現在時刻に設定することで削除する

@PigeonsHouse PigeonsHouse force-pushed the feature/cookie-based-auth branch from b5eb45a to 8604690 Compare April 15, 2023 05:23
@PigeonsHouse
Copy link
Collaborator

リンターの修正がPRに入っているとマージしにくかったのでdevelopにrebaseしてforce pushしました。
リンターの修正のPRは別途分けてPR作成します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants