私はlaravel 5.4でmake:authメソッドを使用しています。さて、私は、レジスタオプションの動作を変更したいと思います。私は、管理者としてログインしているユーザーに対してのみ登録オプションを使用したいと考えています。他のユーザーには、登録オプションを無効にする必要があります。元のバージョンでは、認証前に登録することができます。私はこの登録オプションを使用して、管理者に新しいユーザーを追加させたいと思っています。 私はuser.blade.phpのページを登録するためにユーザー認証とリダイレクトのオプションを試みましたが、動作しません。私は私の新しいプロジェクトのためのラーベルを学んでいます。どのように進むべきかについての専門家のアドバイス。ログインした後にのみ登録ページを有効にする - Laravel 5.4
答えて
は現在、このような方法はでないだけで、ユーザーがページにアクセスすることができますログインように、これは現在、それを作っているApp\Http\Controllers\Auth\RegisterController
public function __construct()
{
$this->middleware('guest');
}
にあります。代わりに、のは、あなたの基準の一つのニーズを満たすためにそれを変更してみましょう:
public function __construct()
{
$this->middleware('auth');
}
今、彼らはそれにアクセスするには、ログインする必要があります偉大な、。しかし、管理者はどうですか?今度は、そのミドルウェアを作ってみましょう:
php artisan make:middelware AdminMiddleware
が今度はApp\Http\Middleware\AdminMiddleware
でファイルを開いて、いくつかの調整を行いましょう。 注ここではコードベースについていくつかの仮定が必要です。
public function handle($request, Closure $next)
{
if (auth()->check() && auth()->user()->hasRole('admin')) {
return $next($request);
}
return redirect('/');
}
次に、アプリケーションミドルウェアを登録しましょう。 App\Http\Kernel.php
を開き、一番下までスクロール:
protected $routeMiddleware = [
'admin' => \App\Http\Middleware\AdminMiddleware::class, // <--add this
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
は最後のバックApp\Http\Controllers\Auth\RegisterController
に行くと、このミドルウェアを利用するために私たちのconstruct
機能を更新してみましょう:
public function __construct()
{
$this->middleware(['auth', 'admin']);
}
は今、あなたのユーザーがログインしている必要があり、そしてまた、彼らロールはadmin
である必要があります。
これを行うには、確かに短い方法がありますが、これは自分自身を繰り返すのを助ける(DRYプログラミング)ので、私が好む方法です。それは本当にApp\Http\Middleware\AdminMiddleware
use Illuminate\Support\Facades\Auth;
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->is_admin == 1)
{
return $next($request);
}
return redirect('home');
}
にhelped.changes
は、あなたが言ったように、ユーザーに「is_admin」という名前のフィールドは、ファイル内の他の変更をtable.And持っています。 公開ページ(http://localhost/larashop/public/)では、ログインと登録の両方のリンクが表示されます。 1.ログインをクリックすると、ログインページにリダイレクトされます。ここでは、管理者の電子メールIDを入力します。管理者以外のユーザーの場合も登録オプションも表示されません。 2.登録をクリックすると、ログインページにリダイレクトされます。 ここでは、管理者の電子メールIDを入力します。登録ページにリダイレクトされ、管理者以外のユーザーはホームページにリダイレクトされます。 ログインリンクが期待通りに機能しません。ご意見は
`
- 1. Laravel 5.4 - 登録後に自動ログインを無効にする
- 2. Laravel 5.4 - 登録後の自動ログイン
- 3. Laravel 5登録後にログインを停止
- 4. Socialite登録(Laravel 5.4)
- 5. ユーザー登録後にログインページにリダイレクトします。 Laravel 5.4
- 6. Laravel、同じページに登録とログイン。両方の形式のエラー
- 7. Laravel 5.2ログイン中に登録
- 8. Laravelに登録した後、ユーザーがログインできない
- 9. Django登録 - ログイン後にログイン/登録からリダイレクトする
- 10. Twitterのログイン後、Laravel 5.4とSocialiteが呼び出しページにリダイレクト
- 11. ログイン試行後に登録ページにリダイレクトする方法は?
- 12. Laravel - 別の登録者/ログイン
- 13. laravelの任意のページからログイン/登録する方法
- 14. Laravel固有の登録トークン
- 15. Stormpathの登録ページにソーシャル・ログイン
- 16. 登録後の自動ログイン
- 17. laravelの1ページに登録とログインフォーム5.3
- 18. Laravel Auth登録ページを変更する
- 19. Wordpressにログイン/登録する
- 20. laravel 5.2登録後にユーザーにログインしないでください
- 21. パスワード/コードを使用してログイン/登録ページにアクセスする
- 22. 管理者が最初にログインした後のC#登録フォーム
- 23. woocommerceのログイン登録ページを編集
- 24. ログイン時に登録ページを開くと、Laravelがリダイレクトされます
- 25. 登録後に自動ログインする方法
- 26. 私はlaravel 5.3でページのURLを登録/カスタム登録</p> <p>どのように私は(オーバーライド)をハックすることができますへの登録/から変更したいlaravel 5.3にページのURLを登録/カスタム登録
- 27. ユーザがログインしたときに登録ボタンを無効にする
- 28. アカウントを有効にした後にログインする方法は?
- 29. Magentoのログインと登録フォームの1ページ
- 30. Laravel 5.2登録後に別のデータベースにデータを保存する