簡體   English   中英

Laravel loginUsingId似乎不起作用

[英]Laravel loginUsingId doesn't seem to work

我需要通過Auth手動登錄Laravel 5.7中的用戶。 一旦我運行Auth :: loginUsingId($ userId,true),我就會將用戶重新定位到他的帳戶頁面。

這一點是通過令牌的用戶可以登錄到網站,而無需再次添加他的憑據。

我嘗試過任何我能在網上找到的東西,包括將Session從MiddlewareGroup轉移到Middleware,檢查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方法。 它只是不會持久到帳戶頁面。

有任何想法嗎?

在控制器中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM