3 changed files with 73 additions and 0 deletions
@ -0,0 +1,27 @@ |
|||||
|
<?php |
||||
|
namespace app\api\controller; |
||||
|
|
||||
|
use app\api\service\UserService; |
||||
|
use think\Controller; |
||||
|
use think\response\Json; |
||||
|
|
||||
|
/** |
||||
|
* 用户账户控制器 |
||||
|
* 功能:MVC 中的C,处理用户输入和反馈给用户 |
||||
|
*/ |
||||
|
class Passport extends ApiController{ |
||||
|
/** |
||||
|
* 登录 |
||||
|
*/ |
||||
|
public function login():Json{ |
||||
|
|
||||
|
$model = new UserService; |
||||
|
if (($userInfo = $model->login($this->postData())) === false) { |
||||
|
return $this->renderError($model->getError() ?: '登录失败'); |
||||
|
} |
||||
|
return $this->renderSuccess([ |
||||
|
'userId' => $userInfo['uid'], |
||||
|
'token' => $model->getToken() |
||||
|
], '登录成功'); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace app\api\model; |
||||
|
use app\common\model\TimeModel; |
||||
|
|
||||
|
class User extends TimeModel |
||||
|
{ |
||||
|
protected $deleteTime = 'delete_time'; |
||||
|
} |
||||
@ -0,0 +1,37 @@ |
|||||
|
<?php |
||||
|
namespace app\api\service; |
||||
|
|
||||
|
use app\api\model\User; |
||||
|
use think\Db; |
||||
|
/** |
||||
|
* 用户表 |
||||
|
*/ |
||||
|
class UserService { |
||||
|
public function mktoken(){ |
||||
|
// jwt |
||||
|
$guid = get_guid_v4(); |
||||
|
$dtime = time(); |
||||
|
return md5(uniqid($guid.$dtime,true)); |
||||
|
} |
||||
|
/** |
||||
|
* 用户登录操作,传入用户查询后才对比密码 |
||||
|
*/ |
||||
|
public function userlogin(string $uname,string $pass){ |
||||
|
// query db |
||||
|
$drs = User::where(['nick_name'=>$uname])->find(); |
||||
|
// 异常处理 |
||||
|
if(!isset($drs)){ |
||||
|
throwError('用户不存在'); |
||||
|
return false; |
||||
|
}else{ |
||||
|
// 对比密码 |
||||
|
if($drs['password'] != $pass){ |
||||
|
throwError('密码错误'); |
||||
|
return false; |
||||
|
} |
||||
|
// 返回用户信息 |
||||
|
return $drs; |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue