Php Laravel loginUsingId似乎不起作用
我需要通过Auth手动登录Laravel 5.7中的用户。运行Auth::loginUsingId$userId后,如果为true,则将用户重新定位到其帐户页面 这一点的意义在于,通过令牌访问的用户可以登录到该网站,而无需再次添加其凭据 我尝试过任何我能在网上找到的方法,包括将会话从MiddlewareGroup移动到中间件、检查Cookie名称以及其他一些不起作用的方法 我的控制器看起来像这样:Php Laravel loginUsingId似乎不起作用,php,laravel,login,laravel-5.7,Php,Laravel,Login,Laravel 5.7,我需要通过Auth手动登录Laravel 5.7中的用户。运行Auth::loginUsingId$userId后,如果为true,则将用户重新定位到其帐户页面 这一点的意义在于,通过令牌访问的用户可以登录到该网站,而无需再次添加其凭据 我尝试过任何我能在网上找到的方法,包括将会话从MiddlewareGroup移动到中间件、检查Cookie名称以及其他一些不起作用的方法 我的控制器看起来像这样: public function loginExternal(Request $request) {
public function loginExternal(Request $request) {
$userId = $request->uid;
Auth::loginUsingId($userId, true);
redirect()->to('/account')->send();
}
它的路线非常简单:
Route::get('/oneclick/{token}', 'Auth\AccountController@loginExternal')->middleware('signed')->name('oneclick');
我希望用户能够自动登录并进入他的帐户。现在它只是把我发送到登录页面
我注意到loginUsingId方法只在这个控制器中生成一个新的会话id,但是在网站的其他页面中,网站正在使用一个不同的会话,应该发生相同的会话
我需要提到的是,用户确实在LoginExternal方法中获得了loggedin。它只是不能持久保存到帐户页面
有什么想法吗?在控制器中:
public function loginExternal($id) {
$user = User::find($id);
if($user){
\Auth::loginUsingId($id, true);
return redirect('/account');
} else {
return redirect('/')->with('error_message', 'No user found!');
}
}
在路由文件web.php中
Route::get('/oneclick/{id}', 'Auth\AccountController@loginExternal')->name('oneclick');
您为此定制了中间件吗?没有。。它被添加到一个简单的控制器中。据我所知,这应该行得通。。