laravel passportはwebとapiが同じサーバー内でしか使えないと思うのですが、
webとapiが別サーバーの場合、独自で機構を作るしかないでしょうか?
パスワードの概念をなくしたシステムを作ろうとしているの場合、尚更でしょうか?
nuxt.jsとkaravelで開発しています。
独自機構の場合、流れは以下を想定しています。
ユーザーの登録をする(パスワードはない)
- api側でユーザーの登録
- トークン自体が暗号だが、更に暗号化してユーザーのメールアドレスに登録完了メールを送信する(メール内にリンクを設置)
またはログイン認証リクエストの要求
- メールアドレスを送信して、api側で諸々精査後、メールアドレスに登録完了メールを送信する(メール内にリンクを設置)
受信メールからログインをする
- メール内のリンク押下によりnuxt側に遷移
- nuxt側は指定パラメーターをapi側にリクエスト(パラメーターは1つだけじゃない&暗号化してるのでセキュリティー的には大丈夫だと思っている)
ログイン処理実行
- トークンの解析と照会により該当ユーザーを突き止める
- json形式で返す
ログイン済みの状態確保
- vuexでログインユーザーの情報を保持する(ブラウザを閉じない限りは認証ページ間で行き来ができる想定)
ログイン状態の保持(次回から入力を省略する)
- localstorageなどに諸々保持(有効期限内であればブラウザを閉じても認証ページ間で行き来ができる想定)
端折ってるところは多々ありますが、大まかな流れは以上を想定しています。
結局token生成して二段階認証みたいな形になるので、laravelpassportと同じ形式ではあるのですが、独自機構はなるべく避けたく、より多く世に認知されているもので実装したいところがあります。
apiとwebを別サーバーにする場合、やはりlaravel passportは使えないでしょうか?
サーバー分離しなければ普通にlaravelのauth機能(多分内部でセッション動いてたような記憶がある)が使えると思うのですが、apiとwebを分離した場合のログインのベストプラクティスといいますか、経験談をお尋ねしたいです。
色々調べててtokenをクッキーに保存とかいう方法も拝見しましたが、個人的にはあり得ないだろーとか思っていましたが、更に色々組み合わせて暗号化すればそこまで怖くないと思ったりしています。
(というかそうする以外にないような気がします。)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/10/03 14:44
2019/10/04 10:45
退会済みユーザー
2019/10/04 11:33