在我的应用中,我使用默认身份验证将用户登录到其信息中心。 现在我想为支持者创建一个后端,为管理员创建一个后端。 我现在使用此代码以admin身份登录:
<?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!");
}
}
}
如何在登录后立即使用众所周知的重定向。 在我的AuthController中,我使用此代码的用户:
/**
* 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”的最佳方法是什么?因为会有多个管理员。
答案 0 :(得分:1)
首先,您要检查用户名,密码和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())