ユーザー登録後、アカウントを有効にするためにメールを送信しましたが、ユーザーはアカウントが有効になっていない場合でもログインできます。ユーザー アカウントが有効になっているかどうかを確認するにはどうすればよいですか?
if (Auth::attempt(array('email' => $email, 'password' => $password))) {
// Success login
} else {
// Login fail
}
データベースにクエリを実行する必要があります。
次の db アーキテクチャがあるとします。
users
id name email active
-- ---- ----- ------
1 alex a@a.a 0
あなたは次のことをするかもしれません
if( ! User::where_email($email)->only('active')) // Adapt the where to your needs
echo "User not active"
else
echo "User active"
私はLaravel REST APIデモサービスを作成しました(私はそれを使用しています)。実際には、ユーザーがアクティブ化されているかどうかを確認する部分があります:ここで見つけてくださいhttps://github.com/w0rldart/lRapi/blob/master/api /controllers/api/user.php
秘密鍵を使用してユーザーの電子メールへのリンクを送信します。キーは、アプリケーションの秘密鍵をソルトとして使用した電子メール アドレスのハッシュなど、一意である必要があります。上記の手順を使用して、このリンクがリンクが有効であることを確認するエンドポイントを用意します。生成したキーが電子メール リンクのキーと一致する場合は、アカウントを検証してログイン ページにリダイレクトできます。