我有一个multiauth项目。我具有默认身份验证和自定义防护。在登录控制器上,当我尝试登录时,它会按预期进行身份验证。但是,进入首页后,自定义防护将不再登录。
使用自定义防护的用户已经通过外部API登录,因此我不希望它们出现在我的users表上。我只需要几个字段即可向他们显示一些内容。
LoginController.php(直到返回时,try方法返回TRUE)
dat1 <- setNames(dat, sub(" (\\w+) (\\w+)$",'\\2 \\1', names(dat)))
tms <- unique(sub('\\w+ (\\w) \\w+', '\\1', names(df)[-(1:2)]))
reshape(dat1, -(1:2), dir='long', times = tms, sep=' ')
aColumn anotherColumn time DayTime DayValue id
1.a stuff more stuff a 12:00 R 1
2.a stuff more stuff a 13:00 I 2
3.a stuff more stuff a 14:00 O 3
1.b stuff more stuff b 12:45 R 1
2.b stuff more stuff b 14:00 P 2
3.b stuff more stuff b 15:35 O 3
CustomProvider.php
...irrelevant code...
Auth::guard('ivao')->attempt(array('vid' => $user_array->vid, 'name' => $user_array->name, 'surname' => $user_array->surname), true);
Cookie::queue(Cookie::forever($this->cookie_name, $_COOKIE['ivao_token']));
Cookie::queue(Cookie::forever('vid', $user_array->vid));
return redirect('/');
...irrelevant code...
主页控制器(这两种检查方法都返回FALSE)
class CustomUserProvider extends ServiceProvider implements UserProvider
{
public function retrieveById($identifier)
{
}
public function retrieveByToken($identifier, $token)
{
if(Cookie::get('rememberToken') == $token)
{
$user = new ApiUser();
$user->vid = Cookie::get('vid');
$user->name = Cookie::get('name');
$user->surname = Cookie::get('surname');
return $user;
}
else return NULL;
}
public function updateRememberToken(UserContract $user, $token)
{
if(Cookie::get('rememberToken') == $token)
{
Cookie::queue(Cookie::forever('vid', $user->vid));
Cookie::queue(Cookie::forever('name', $user->name));
Cookie::queue(Cookie::forever('surname', $user->surname));
Cookie::queue(Cookie::forever('rememberToken'), $token);
return TRUE;
}
else return FALSE;
}
public function retrieveByCredentials(array $credentials)
{
$user = new ApiUser();
$user->vid = $credentials['vid'];
$user->name = $credentials['name'];
$user->surname = $credentials['surname'];
return $user;
}
public function validateCredentials(UserContract $user, array $credentials)
{
return TRUE; //already validated at the API
}
}
如果您需要更多信息,请告诉我。希望有人能帮忙。我被卡住了。谢谢。