使用它作为你的控制器
<?php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
//Use Dependencies
use Auth;
class AdminLoginController extends Controller
{
这里使用的中间件是admin,你必须在config/auth.php中创建它
public function __construct()
{
$this->middleware('guest:admin', ['except'=>'logout']);
}
为您的管理员登录创建一个视图
public function showLoginForm()
{
return view('auth.admin_login');
}
public function login(Request $request)
{
//Validate the Form Data
$this->validate($request, [
'email'=>'required|email',
'password'=>'required|min:5'
]);
//Attempt to log the Admin In
$email= $request->email;
$password= $request->password;
$remember= $request->remember;
成功登录后,您要重定向的地方就像这里我正在重定向
转至admin.dashboard
//If Successful redirect to intended location
if (Auth::guard('admin')->attempt(['email' => $email, 'password' => $password], $remember)) {
return redirect()->intended(route('admin.dashboard'));
}
//If Unsuccessful redirect back to login form with form data
return redirect()->back()->withInput($request->only('email', 'remember'));
}
/**
* Log the Admin out of the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function logout()
{
Auth::guard('admin')->logout();
return redirect()->route('admin.login');
}
}
注销后重定向回登录页面
确保您为正确的用户使用正确的guard。为更多用户类型创建与您想为他们创建 guards 相同的功能。
在config/app.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
],
admin 和 admin-api 在此处创建为您的用户类型
添加提供者
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
最后用这个来重置密码。
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 10,
],
],
在http/middleware/redirectIfAuthenticated.php 中将此添加到您的handle 函数中
//Check for admin login guard
switch ($guard) {
case 'admin':
if (Auth::guard($guard)->check()) {
return redirect()->route('admin.dashboard');
}
break;
default:
if (Auth::guard($guard)->check()) {
return redirect('/dashboard');
}
break;
}
您可以为您的用户类型添加更多案例。
这就是您想要创建多重身份验证的全部内容。当您为不同的角色创建不同的表时,您必须遵循此过程。
- 为所有用户类型创建
LoginController 或使用您的逻辑将其登录。
- 为 auth.php 中的每个用户类型添加您的
guards
- 将您的案例添加到
RedirectIfAuthenticated