[請益] Laravel5.3 Auth::check() 問題

作者: DOPIPI (豆腐熊)   2016-11-01 10:31:17
各位先進好
小弟目前手上有個專案需使用「現成不可變動」(oracle)的資料表做登入
priKey 的欄位是char(6)
內容會儲存 5 或是 6 碼的數字不重複
例如 "12345 "(char 未滿六碼會自動補空格)、"654321"
在Model中已經設好
protected $table = 'logintable';
public $incrementing = false;
protected $primaryKey = 'acct';
自行撰寫的LoginController 大致如下
$acct = sprintf('%-6s', $request->input('acct'));
$pwd = $request->input('pwd');
$user = \App\Logintable::find($acct);
if(empty($user) || $user->pwd != $pwd ){
//登入失敗
throw new Exception(....);
}
//驗證成功登入,且不使用remember_token
Auth::login($user, false);
//轉到有受 middleware: auth 保護的頁面
return redirect('/home');
===================================================================
問題來了
當使用 "654321" 登入的時候,可以很正常的連到 /home
但使用 "12345 " 登入的時候,在return redirect('/')前使用 dd(Auth::user());
確認都能正確取得實例
可是一跳轉頁面之後就會自動被laravel視為未登入跳回 login畫面
登入成功時的 session 在redirect後被刪除掉了
請問除了不使用Auth 自行撰寫登入功能外
有其他的方法能使Auth正常運作的嗎?
作者: liaosankai (低溫烘焙)   2016-11-03 11:49:00
你的 "12345 " 我覺得應該被 trim 過了所以 "12345" 不會等於 "12345 "

Links booklink

Contact Us: admin [ a t ] ucptt.com