Browse Source

修改登录逻辑

master
xyiege 1 year ago
parent
commit
c39868f646
  1. 2
      app/api/controller/Index.php
  2. 2
      app/api/controller/Passport.php
  3. 29
      app/api/service/UserService.php

2
app/api/controller/Index.php

@ -16,7 +16,7 @@ class Index extends BaseController
// make user password // make user password
$data = $request->post(); $data = $request->post();
// 用户密码 // 用户密码
$salt = $this->makeSalt(6); $salt = isset($data['salt'])?$data['salt']:makeSalt(6);
$arr['encpass']=password($data['upass']); $arr['encpass']=password($data['upass']);
$arr['salt']=$salt; $arr['salt']=$salt;
} else { } else {

2
app/api/controller/Passport.php

@ -27,7 +27,7 @@ class Passport extends ApiController{
} }
return $this->renderSuccess([ return $this->renderSuccess([
'userId' => $userInfo['uid'], 'userId' => $userInfo['uid'],
'token' => $model->getToken() 'token' => $model->getToken($userInfo['uid'])
], ''); ], '');
} }

29
app/api/service/UserService.php

@ -54,4 +54,33 @@ class UserService {
$uid = $model->save($arr); $uid = $model->save($arr);
return isset($uid)?true:false; return isset($uid)?true:false;
} }
/**
* 获取登录的token
* @param int $userId
* @return string
*/
public function getToken(int $userId): string
{
static $token = '';
if (empty($token)) {
$token = $this->makeToken($userId);
}
return $token;
}
/**
* 生成用户认证的token
* @param int $userId
* @return string
*/
private function makeToken(int $userId): string
{
// 生成一个不会重复的随机字符串
$guid = \get_guid_v4();
// 当前时间戳 (精确到毫秒)
$timeStamp = \microtime(true);
// 自定义一个盐
$salt = makeSalt(12);
return md5("{$timeStamp}_{$userId}_{$guid}_{$salt}");
}
} }
Loading…
Cancel
Save