Php Laravel loginUsingId似乎不起作用

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) {

我需要通过Auth手动登录Laravel 5.7中的用户。运行Auth::loginUsingId$userId后,如果为true,则将用户重新定位到其帐户页面

这一点的意义在于,通过令牌访问的用户可以登录到该网站,而无需再次添加其凭据

我尝试过任何我能在网上找到的方法,包括将会话从MiddlewareGroup移动到中间件、检查Cookie名称以及其他一些不起作用的方法

我的控制器看起来像这样:

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');

您为此定制了中间件吗?没有。。它被添加到一个简单的控制器中。据我所知,这应该行得通。。