提交服务端基础框架
This commit is contained in:
114
Server/application/backend/controller/UserController.php
Executable file
114
Server/application/backend/controller/UserController.php
Executable file
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
namespace app\backend\controller;
|
||||
|
||||
use app\common\model\UserModel;
|
||||
use app\common\model\UserTokenModel;
|
||||
|
||||
class UserController extends BaseController {
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function login() {
|
||||
$username = trim($this->request->param('username'));
|
||||
$password = trim($this->request->param('password'));
|
||||
if (empty($username)
|
||||
OR empty($password)) {
|
||||
return $this->jsonFail('参数错误');
|
||||
}
|
||||
|
||||
$user = UserModel::get([
|
||||
'username' => $username,
|
||||
'password' => md5($password),
|
||||
]);
|
||||
if (empty($user)) {
|
||||
return $this->jsonFail('账号/密码错误');
|
||||
}
|
||||
if ($user->status != UserModel::STATUS_ACTIVE) {
|
||||
return $this->jsonFail('账号不可用');
|
||||
}
|
||||
|
||||
$tokenModel = new UserTokenModel();
|
||||
$tokenModel->token = md5(time() . uniqid());
|
||||
$tokenModel->user_id = $user->id;
|
||||
if ($tokenModel->save()) {
|
||||
$user->login_time = time();
|
||||
$user->login_count += 1;
|
||||
$user->login_ip = $this->request->ip();
|
||||
if ($user->save()) {
|
||||
return $this->jsonSucc([
|
||||
'logged' => TRUE,
|
||||
'token' => $tokenModel->token,
|
||||
'token_expired' => 365 * 24 * 3600,
|
||||
'user' => $this->userJson($user),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->jsonFail('登录失败');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登录用户
|
||||
*
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function get() {
|
||||
if (!empty($this->userModel)) {
|
||||
return $this->jsonSucc([
|
||||
'logged' => TRUE,
|
||||
'user' => $this->userJson($this->userModel),
|
||||
]);
|
||||
} else {
|
||||
return $this->jsonSucc([
|
||||
'logged' => FALSE,
|
||||
'user' => NULL,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置密码
|
||||
*
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function password() {
|
||||
if (empty($this->userModel)) {
|
||||
return $this->jsonFail('未登录');
|
||||
}
|
||||
|
||||
$oldPassword = trim($this->request->param('oldPassword'));
|
||||
$newPassword = trim($this->request->param('newPassword'));
|
||||
if (empty($oldPassword)
|
||||
OR empty($newPassword)
|
||||
OR strlen($newPassword) < 6
|
||||
OR strlen($newPassword) > 16) {
|
||||
return $this->jsonFail('参数错误');
|
||||
}
|
||||
|
||||
if (md5($oldPassword) != $this->userModel->password) {
|
||||
return $this->jsonFail('原密码输入错误');
|
||||
}
|
||||
|
||||
$this->userModel->password = md5($newPassword);
|
||||
$this->userModel->save();
|
||||
|
||||
return $this->jsonSucc([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function logout() {
|
||||
if (!empty($this->tokenModel)) {
|
||||
$this->tokenModel->delete();
|
||||
}
|
||||
|
||||
return $this->jsonSucc([]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user