我在laravel 5.4中使用make:auth方法。現在,我想更改「註冊」選項的行爲。我只想爲已經以管理員登錄的用戶使用註冊選項,而其他用戶則應禁用註冊選項。原始版本允許您在進行身份驗證之前進行註冊。我想使用這個註冊選項讓管理員添加新用戶。 我試過認證用戶的選項,並重定向到home.blade.php註冊頁面,但它不起作用。我正在爲我的新項目學習laravel.So任何有關如何進行的專家建議。只有登錄後才啓用註冊頁面 - Laravel 5.4
-1
A
回答
2
目前有在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編程)。
0
這真的helped.changes在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');
}
擁有的用戶名爲「is_admin」字段table.And在文件中的其他變化如你所說。 現在在公共頁面(http://localhost/larashop/public/),這裏登錄和註冊這兩個鏈接都可見。 1.當我點擊登錄時,它重定向到登錄頁面:在這裏我輸入一個管理員電子郵件ID,它不顯示我的註冊選項,不爲非管理員用戶。 2.當我點擊註冊,它重定向到登錄頁面: 在這裏,我輸入管理員電子郵件ID,它重定向到註冊頁面和非管理員用戶它重定向到主頁。這工作正常。 因此,登錄鏈接不能按預期工作。任何建議
`
相關問題
- 1. 用戶註冊後重定向到登錄頁面。 Laravel 5.4
- 2. Laravel 5.4 - 註冊後自動登錄
- 3. 在Laravel 5.2中啓用/註冊頁面登錄用戶
- 4. Laravel 5.4 - 註冊後禁用自動登錄
- 5. laravel 5.4菜單登錄註冊後仍然顯示登錄用戶
- 6. 返回註冊頁面登錄後
- 7. Wordpress登錄註冊頁面
- 8. 登錄或註冊後重定向到基本頁面Laravel
- 9. 只有登錄的用戶才能訪問PHP登錄頁面?
- 10. Laravel 5.3.14 - 註冊後無效登錄
- 11. 將用戶重定向到登錄頁面註冊後(登記)
- 12. 只能通過登錄/註冊才能訪問主頁
- 13. Laravel 5.4在auth會話過期後返回登錄頁面
- 14. Laravel 5.2註冊時登錄
- 15. 登錄用戶請參閱登錄和註冊頁面(django註冊)
- 16. 只有登錄後才能訪問製作頁面 - Firebase網絡
- 17. Auth0,Laravel 5.4 - 註銷用戶再次登錄後
- 18. 禁用/帳號/在用戶登錄後註冊頁面 - ASP.net
- 19. 登錄頁面和註冊頁面,我需要把所有的
- 20. Laravel註冊和子域上的登錄頁面
- 21. 在laravel的一個頁面中註冊並登錄表單5.3
- 22. 連接重置在laravel 5登錄或註冊頁面
- 23. Joomla,註冊頁面需要登錄
- 24. 編輯woocommerce登錄註冊頁面
- 25. 登錄/註冊結帳頁面?
- 26. 我的登錄和註冊頁面
- 27. Woo-commerce獨立登錄&註冊頁面
- 28. 登錄和註冊頁面問題php
- 29. 聯合登錄和註冊頁面?
- 30. 在用戶註冊/登錄後將值傳遞給頁面