私は現在、将来のプロジェクトのためにいくつかの研究開発を行っており、Laravel Fortify & Sanctum を使用する予定です。
ユーザーは、別のドメインでホストされているスタンドアロンの PWA アプリケーション (既に存在しますが、まもなく終了するサードパーティ認証を使用しています) に登録できるという考えです。
現在、2 つのオプションが表示されます。どちらかは、fortify のデフォルト フローを使用して laravel アプリケーションに登録します。ユーザーが登録され、電子メールが確認されると、PWA アプリにログインできるようになります。これはすぐに使用できる機能ですが、ユーザー フレンドリーではないため、開発が最も簡単なフローです。
別のアプローチは、API 呼び出しを介して PWA アプリにユーザーを登録することです。登録したら、確認リンクを含むメールを送信します。このリンクでは、確認のためにユーザーを認証する必要はありません。
ここで紛らわしい部分があります。メールが確認されない限り、ユーザーは PWA アプリにログインできません。また、PWA で確認メールの警告が表示されます。しかし、何らかの理由でユーザーが電子メールを受信しない場合、またはリンクの有効期限が切れている場合、ユーザーは立ち往生します。
この時点で、ユーザーが自分のメールアドレスを入力して確認メールを再送信できる入力フィールドを提供します。そして、そのメールを API 経由で送信して、確認リンクを再送信します。
public function resend(Request $request){
$user = User::where("email", $request->input("email"))->first();
if($user){
$user->sendEmailVerificationNotification();
}
return response(["message" => "New link send"]);
}
その電子メール アドレスを持つユーザーがいない場合、ユーザーにはエラーが表示されません。これは、データの漏洩を防ぐためです。
このアプローチがセキュリティ上の問題を引き起こす可能性があるかどうか疑問に思っていましたか? または、デフォルトの強化登録/検証フローよりも最初のアプローチを使用する必要がありますか?
この件についてご意見をお寄せいただきありがとうございます。
よろしく、バート