私は複数のユーザーで構成され、ミドルウェアを使用して認証システムを作成したusersテーブルを持っています。今私は特定のユーザーだけがログインすることを許可する可能性があることを知っていると彼らのタイプに基づいて他のログインを防止する(つまり、私はすでにユーザーテーブル内のuser_type列を定義しました)Laravel 5は、ユーザータイプに基づいて特定のユーザーのみにログインできるようにします。
答えて
カスタムAuth::attempt
のフィールド:
class LoginController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate()
{
if (Auth::attempt(['email' => $email, 'password' => $password, 'user_type'=>10])) { //<---
// Authentication passed...
}
}
}
別の解決策は、彼/彼女が持っている権限をチェックし、利用者がログインし、許可されていない場合はログアウトを強制することです。
LoginControllerにauthenticate()関数はありません。 __constructorにミドルウェアをロードする 'ゲスト'ミドルウェアしかありません –
誰もがゲストでログインはしていませんか? –
'LoginControllerはコントローラを拡張します { はAuthenticatesUsersを使用します; $ redirectTo = '/ viewspaces'を保護しました。 public function __construct() { $ this->ミドルウェア( 'guest'、['except' => 'logout']); } } –
これを試してください。
public function authenticate()
{
if (auth()->user()->user_type !== 1) {
auth()->logout();
}
}
このコードは、ユーザーの種類を確認し、それが1
がない場合には、認証されたユーザーをサインアウトするlogout()
メソッドを使用します。
$allowed = User::join('user_types', 'user.id', '=', 'user_types.user_id')
->where('user.email', $email)
->where('user.password', $password)
->where('user_types.type', 'admin') // the type of user
->exists();
if($allowed) {
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// passed
}
return 'not authorized';
}
5.3では、あなたはLoginController.php
でauthenticate()
メソッドをオーバーライドすることができます。
LoginControllerにはauthenticate()関数はありません。これは、__constructorにミドルウェアローディング 'ゲスト'ミドルウェアを持っています –
- 1. laravel 5ユーザーのロールに基づいてログイン後にユーザーをリダイレクトする
- 2. ユーザータイプに基づいてlaravelバリデーターを設定
- 3. 角2ユーザーがログインしているかどうかに基づいて特定のコンポーネントにルーティングする
- 4. ユーザータイプに基づいて、ナビゲーションメニューを設定する方法 - SOCIALENGINE
- 5. Laravelユーザーがログインしようとしたときにデータベースに書き込み、正常にログインしてログアウトする
- 6. Laravel 5にログインしています
- 7. Laravel 5 .env.masterに基づいてenvファイルをロードしますか?
- 8. 現在ログインしているユーザーに基づいてMeteor.usersコレクションから特定のユーザーを戻すにはどうすればいいですか?
- 9. ログインに基づいてログイン
- 10. 特定のユーザーのみがアクセスできるようにする
- 11. laravelユーザーがログインしているときにルーティングするようにリダイレクト
- 12. ログインしているかどうかに基づいてユーザーをリダイレクトする
- 13. Wordpress Admin:ユーザーのログインに基づいて投稿をフィルタする
- 14. Joomla 3でのログイン後にユーザーグループまたはアクセスレベルに基づいてユーザーをリダイレクト
- 15. 選択されたユーザーのユーザータイプに基づいてUIコンポーネントを非表示OIM
- 16. ユーザータイプに基づいて複数のバンドルを反応させる
- 17. IDに基づいてuniqueIDを作成するmysql laravel 5
- 18. ユーザーの "ロール"に基づくPHPログイン
- 19. php特定のサイトメニューをユーザのログイン名に基づいて表示する
- 20. ログインしたユーザー作成レコードに基づいてドロップダウンを設定する
- 21. ロールに基づく特定のビューに対するユーザー権限
- 22. Laravel 5 - モデルと関連するモデルIDに基づいて特定の多対多の関係を取得
- 23. ログイン後、ブラウザの言語に基づいて特定のページにリダイレクト
- 24. ユーザーのログインに基づいてデータベースのデータを表示
- 25. MYSQL - 特定のフィールドに基づいて最新の5行を返す
- 26. どのように特定のユーザーのためのメニューを非表示にするには? thierログインタイプに基づいて、特定のユーザーのために特定のメニューを非表示にするには、どのように
- 27. 日付に基づいて新しいユーザーIDを特定するR
- 28. 特定の属性に基づいてエンティティをスキップします。
- 29. Wordpress:ログインしているユーザーに基づいてページにメディアファイルを表示
- 30. ユーザーが既にログインしている場合に基づいてログイン/ログアウトを切り替えます
はい、可能です。より具体的な回答を希望される場合は、あなたが望むものとすでに持っているものの詳細を記入してください。 – devk
私が正しく覚えていれば、簡単に自分で作ることができます。laravel 5には、Auth/LoginController内のpostLogin関数とafterLogin関数が付属しています。これらの2つの関数で、独自のカスタムチェックを実行して、 – killstreet