这算什么操作?
// if (!Auth::attempt(['mobile' => $data['mobile'], 'password' => $data['password']])) {
// return $this->renderError('认证错误');
// }
// $user = $request->user();
$user = User::where(['mobile' => $data['mobile'], 'password' => $data['password'], 'shop_id' => $data['shop_id']])->first();
if (is_null($user)) return $this->renderError('用户不存在');
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($data['remember_me']) {
$token->expires_at = Carbon::now()->addWeeks();
}
$token->save();
看到上面这样的代码(passport认证的login()),
attempt
被注掉。了解到这样做的原因是为了实现相同手机号注册的不同用户认证…
?????????????????????????????????
应该使用如下 Laravel 的自带的手动认证的方法,假设某个用户你确定他登录时填写了正确的账号和密码。那么使用
然后,这个token可以返回给前端,让前端每次请求接口时在头部带上这个token。
应该是手机号可以相同,但
shop_id
不同。以下代码是创建 token此需求下应是同一个店铺也可以用同一手机号注册不同用户,例如1314xxxxxxx这个手机号注册了A、B两个账号,然后走了
attempt
的代码,便只有先注册的A能认证成功....B会报错“认证错误”其实我好奇的是这一段是在解决什么问题
attempt也支持其他参数啊,框架只是把password单独过滤出来,用于密码验证,除非你密码是明文认证的,因为框架默认是hash
明文密码?
你描述的需求和你列出来的代码,根本就不是一个东西。。
emmm... 感觉怪怪的。