Cookieを用いた自動ログインを実装していて質問があります。
前提
手動ログイン時にtokenを発行、DBとCookieに設定しておいて、
ログインセッションが切れた状態でユーザのアクセスがあった場合に、
Cookieに焼かれているtokenからDBを参照、あれば自動ログイン(ログインセッション生成)させています。
参考にしているサイト
https://blog.ohgaki.net/wrong-auto-login-the-answer
質問
この実装方法ですと、
ちょうど自動ログイン処理するタイミングで二重クリックされた場合に、
二回目のアクセスで自動ログインが失敗してしまうかと思います。
一回目のアクセス Cookie:token1 DB :token1 →自動ログイン成功、token1をDBから削除、token2を生成しCookieとDBに設定。 二回目のアクセス Cookie:token1 ※一回目のアクセスで新しいトークンが焼かれる前に二回目のアクセス DB :token2 →token1は削除済でDBに存在しないため自動ログイン失敗。
通信環境が悪かったり誤操作だったり、二重クリックされるケースは容易に考えられるため、
救えるものなら救いたいと考えていますが、良い対応方法はありますでしょうか。
それともセキュリティ面からそもそも対応してはいけないものでしょうか。
例えば、二世代まで有効なtokenとしてDBに保持し続けるなどすれば対応は可能かと思いますが、
その場合のリスクは単純に二倍になると考えてよいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/08 17:22