在我的应用程序中,我使用默认身份验证将我的用户登录到他们的仪表板。现在我想为支持者创建一个后端,为管理员创建一个后端。我目前使用此代码以管理员身份登录:
<?php
namespace App'Http'Controllers'Admin;
use Illuminate'Http'Request;
use App'Http'Requests;
use App'Http'Controllers'Controller;
use App;
use Artisan;
use Validator;
use Auth;
class AdminLoginController extends Controller
{
public function index()
{
return view('admin.login');
}
public function authenticate(Request $request)
{
if (Auth::attempt(['username' => $request->username, 'password' => $request->password, 'id' => 1]))
{
// Authentication passed...
dd("correct");
}
else
{
dd("login data incorrect!");
}
}
}
登录后如何使用众所周知的重定向。在我的身份验证控制器中,我为用户使用此代码:
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/dashboard';
protected $redirectAfterLogout = 'auth/login';
protected $redirectPath = '/dashboard';
1.) 如何在上面的代码中使用它?我想使用此 laravel 功能将登录到应用程序的管理员(如用户)重定向到指定的 URL。
2.) 在 if 语句中检查更多"id"的最佳方法是什么?因为会有多个管理员。
首先,
您要检查用户名,密码以及ID。因此,只有 Id = 1 的用户才会由您的函数进行身份验证。您无需在那里进行身份检查。
现在对于重定向,您可以创建一个函数,该函数根据用户类型返回 url。这是一个非常基本的例子'
public function getRedirectUrl(){
if(auth()->user()->isAdmin()){
return url('/admin-dashboard');
}
elseif(auth()->user()->isUser()){
return url('/user-dashboard')
}
}
确保在你的用户模型中定义了isAdmin()和isUser()函数,如
public function isAdmin(){
return $this->user_type == UserType::ADMIN;
}
因此,在您的身份验证功能中,只需执行return redirect($this->getRedirectUrl())