php laravel token,Laravel 在登录返回Token

接着上一篇的 密文密码登录接口,我们需要在用户用户名密码验证成功的情况下,多返回一个token 的字段。

这里使用JWT来实现token,比较方便简单。

关于JWT的引入以及配置可以查看这篇文章,里面有Laravel接入JWT的全面方法,照做即可。

方法最后变成

/*

* 密码登录

* */

public function pwdLogin(PwdLoginRequest $pwdLoginRequest){

$password = Crypt::decrypt($pwdLoginRequest['password'],false);

$phone = $pwdLoginRequest['phone'];

//此处加入了token

if ($token = auth('api')->attempt(['phone' => $phone,'password' => $password])) {

$user_info = Users::where('phone', $phone)->first()->toarray();

$user_info['token'] = $token;

return $this->success($user_info);

}else{

return $this->failed('用户名或密码错误');

}

}

那么短信验证码登录与密码登录,大体逻辑相同,只是我为了使用Laravel自带的attempt()方法 另外建立了一个验证模型

/*

* 验证码登录

* */

public function smsLogin(CodeService $codeService,CaptchaGetRequest $request){

$phone = $request['phone'];

$code = $request['code'];

$token = auth('sms')->attempt(['phone' => $phone,'password' => $code]);

if ($token && $codeService->checkCode($request['phone'],$request['code'])) {

$user_info = Users::where('phone', $request->get('phone'))->first()->toarray();

$user_info['token'] = $token;

return $this->success($user_info);

}else{

return $this->failed('验证码错误');

}

}

这里在config/auth.php下添加了一个sms的验证入口

'guards' => [

'web' => [

'driver' => 'session',

'provider' => 'users',

],

'api' => [

// 'driver' => 'token',

'driver' => 'jwt',

'provider' => 'users',

],

'sms' => [

'driver' => 'jwt',

'provider' => 'userSms',

]

],

'providers' => [

'users' => [

'driver' => 'eloquent',

'model' => App\Models\Users::class,

],

'userSms' => [

'driver' => 'eloquent',

'model' => App\Models\UserSms::class,

],

在UserSms.php内使用getAuthPassword()方法修改验证字段

public function getAuthPassword() {

return $this->capatcha_code;

}

这样就可以同时通过短信验证码与密码进行登录并且分发token了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值