作者DOPIPI (豆腐熊)
看板PHP
标题[请益] Laravel5.3 Auth::check() 问题
时间Tue Nov 1 10:31:17 2016
各位先进好
小弟目前手上有个专案需使用「现成不可变动」(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正常运作的吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.204.64.19
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1477967479.A.06F.html
※ 编辑: DOPIPI (180.204.64.19), 11/01/2016 10:33:43
※ 编辑: DOPIPI (180.204.64.19), 11/01/2016 10:35:48
1F:→ liaosankai: 你的 "12345 " 我觉得应该被 trim 过了 11/03 11:49
2F:→ liaosankai: 所以 "12345" 不会等於 "12345 " 11/03 11:50