Php Laravel 8:记住身份验证抛出错误502
我有一个多授权项目。当我使用custom guard登录时,它可以完美地工作(记住和不记住登录),但是当我使用默认的laravel身份验证时,记住登录会抛出错误502。非记住登录按预期工作 LoginController.phpPhp Laravel 8:记住身份验证抛出错误502,php,laravel,authentication,Php,Laravel,Authentication,我有一个多授权项目。当我使用custom guard登录时,它可以完美地工作(记住和不记住登录),但是当我使用默认的laravel身份验证时,记住登录会抛出错误502。非记住登录按预期工作 LoginController.php if ($user = User::find($user_array->vid)) //Default login { Auth::loginUsingId($user_array->vid, TRUE); } else //Custom guard
if ($user = User::find($user_array->vid)) //Default login
{
Auth::loginUsingId($user_array->vid, TRUE);
}
else //Custom guard login
{
Auth::guard('ivao')->attempt(array('vid' => $user_array->vid, 'name' => $user_array->firstname, 'surname' => $user_array->lastname), TRUE);
Cookie::queue(Cookie::forever($this->cookie_name, $_COOKIE['ivao_token']));
Cookie::queue(Cookie::forever('vid', $user_array->vid));
Cookie::queue(Cookie::forever('name', $user_array->firstname));
return redirect('/');
}
CustomUserProvider.php
class CustomUserProvider extends ServiceProvider implements UserProvider
{
public function retrieveById($identifier)
{
$user = new ApiUser();
$user->vid = Cookie::get('vid');
$user->name = Cookie::get('name');
return $identifier == $user->vid ? $user : NULL;
}
public function retrieveByToken($identifier, $token)
{
if(Cookie::get('rememberToken') == $token)
{
$user = new ApiUser();
$user->vid = Cookie::get('vid');
$user->name = Cookie::get('name');
return $user;
}
else return NULL;
}
public function updateRememberToken(UserContract $user, $token)
{
setcookie('rememberToken', $token, time() + 3600*24*365);
}
public function retrieveByCredentials(array $credentials)
{
$user = new ApiUser();
$user->vid = $credentials['vid'];
$user->name = $credentials['name'];
return $user;
}
public function validateCredentials(UserContract $user, array $credentials)
{
return TRUE;
}
}
public function boot()
{
$this->registerPolicies();
Auth::provider('customusers', function ($app, array $config) {
// Return an instance of Illuminate\Contracts\Auth\UserProvider...
return new CustomUserProvider($app);
});
}
AuthUserProvider.php
class CustomUserProvider extends ServiceProvider implements UserProvider
{
public function retrieveById($identifier)
{
$user = new ApiUser();
$user->vid = Cookie::get('vid');
$user->name = Cookie::get('name');
return $identifier == $user->vid ? $user : NULL;
}
public function retrieveByToken($identifier, $token)
{
if(Cookie::get('rememberToken') == $token)
{
$user = new ApiUser();
$user->vid = Cookie::get('vid');
$user->name = Cookie::get('name');
return $user;
}
else return NULL;
}
public function updateRememberToken(UserContract $user, $token)
{
setcookie('rememberToken', $token, time() + 3600*24*365);
}
public function retrieveByCredentials(array $credentials)
{
$user = new ApiUser();
$user->vid = $credentials['vid'];
$user->name = $credentials['name'];
return $user;
}
public function validateCredentials(UserContract $user, array $credentials)
{
return TRUE;
}
}
public function boot()
{
$this->registerPolicies();
Auth::provider('customusers', function ($app, array $config) {
// Return an instance of Illuminate\Contracts\Auth\UserProvider...
return new CustomUserProvider($app);
});
}
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'ivao' => [
'driver' => 'session',
'provider' => 'custom',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
如果您需要更多信息,请告诉我。我卡住了。提前谢谢