|
|
@ -2,6 +2,7 @@ |
|
|
|
|
|
|
|
|
namespace app\model; |
|
|
namespace app\model; |
|
|
|
|
|
|
|
|
|
|
|
use think\facade\Session; |
|
|
use think\Model; |
|
|
use think\Model; |
|
|
|
|
|
|
|
|
class User extends Model |
|
|
class User extends Model |
|
|
@ -50,15 +51,20 @@ class User extends Model |
|
|
public function login($data) |
|
|
public function login($data) |
|
|
{ |
|
|
{ |
|
|
// 根据用户名查询用户信息 |
|
|
// 根据用户名查询用户信息 |
|
|
$user = $this->where('phone', $data['phone'])->find(); |
|
|
$user = $this->where('phone', $data['phone'])->field('id,username,phone,invite_code,password,salt')->find(); |
|
|
|
|
|
|
|
|
if ($user) { |
|
|
if ($user) { |
|
|
// 使用相同的盐值对输入密码进行哈希验证 |
|
|
// 使用相同的盐值对输入密码进行哈希验证 |
|
|
$hashedPassword = $this->generateHashedPassword($data['password'], $user->salt); |
|
|
$hashedPassword = $this->generateHashedPassword($data['password'], $user->salt); |
|
|
|
|
|
|
|
|
if ($user->password === $hashedPassword) { |
|
|
if ($user->password === $hashedPassword) { |
|
|
|
|
|
|
|
|
|
|
|
# 缓存用户信息 |
|
|
|
|
|
$login_user_data = $user->toArray(); |
|
|
|
|
|
unset($login_user_data['password'],$login_user_data['salt']); |
|
|
|
|
|
Session::set('login_user_data',$login_user_data); |
|
|
// 登录成功 |
|
|
// 登录成功 |
|
|
return ['status' => true, 'msg' => '手机号未注册', 'data' => $user]; |
|
|
return ['status' => true, 'msg' => '登录成功', 'data' => $login_user_data]; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
|
|
|
return ['status' => false, 'msg' => '密码错误']; |
|
|
return ['status' => false, 'msg' => '密码错误']; |
|
|
@ -85,11 +91,12 @@ class User extends Model |
|
|
|
|
|
|
|
|
// 生成盐值 |
|
|
// 生成盐值 |
|
|
$salt = $this->generateSalt(); |
|
|
$salt = $this->generateSalt(); |
|
|
|
|
|
$password = $this->generateHashedPassword($data['password'], $salt); |
|
|
// 密码加盐值后哈希存储 |
|
|
// 密码加盐值后哈希存储 |
|
|
$user->password = $this->generateHashedPassword($data['password'], $salt); |
|
|
$user->password = $password; |
|
|
$user->salt = $salt; |
|
|
$user->salt = $salt; |
|
|
$user->update_time = date("Y-m-d H:i:s",time()); |
|
|
$user->update_time = date("Y-m-d H:i:s",time()); |
|
|
$this->save(); |
|
|
$user->save(); |
|
|
|
|
|
|
|
|
return ['status' => true, 'msg' => '密码重制成功']; |
|
|
return ['status' => true, 'msg' => '密码重制成功']; |
|
|
} |
|
|
} |
|
|
@ -97,6 +104,44 @@ class User extends Model |
|
|
return ['status' => false, 'msg' => '手机号未注册']; |
|
|
return ['status' => false, 'msg' => '手机号未注册']; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 修改密码 |
|
|
|
|
|
* @param $data |
|
|
|
|
|
* @return array |
|
|
|
|
|
* @throws \think\db\exception\DataNotFoundException |
|
|
|
|
|
* @throws \think\db\exception\DbException |
|
|
|
|
|
* @throws \think\db\exception\ModelNotFoundException |
|
|
|
|
|
*/ |
|
|
|
|
|
public function modifyPassword($data) |
|
|
|
|
|
{ |
|
|
|
|
|
$user = Session::get('login_user_data'); |
|
|
|
|
|
|
|
|
|
|
|
if ($user) { |
|
|
|
|
|
|
|
|
|
|
|
$userModel = $this->find($user['id']); |
|
|
|
|
|
$password = $this->generateHashedPassword($data['password'], $userModel->salt); |
|
|
|
|
|
|
|
|
|
|
|
if ($userModel->password == $password) { |
|
|
|
|
|
return ['status' => false, 'msg' => '新密码与原密码一致']; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 生成盐值 |
|
|
|
|
|
$salt = $this->generateSalt(); |
|
|
|
|
|
$new_password = $this->generateHashedPassword($data['password'], $salt); |
|
|
|
|
|
|
|
|
|
|
|
// 密码加盐值后哈希存储 |
|
|
|
|
|
$userModel->password = $new_password; |
|
|
|
|
|
$userModel->salt = $salt; |
|
|
|
|
|
$userModel->update_time = date("Y-m-d H:i:s",time()); |
|
|
|
|
|
|
|
|
|
|
|
$this->save(); |
|
|
|
|
|
|
|
|
|
|
|
return ['status' => true, 'msg' => '修改成功']; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ['status' => false, 'msg' => '登陆状态有误']; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 手机号短信验证码验证 |
|
|
* 手机号短信验证码验证 |
|
|
* @param $phone |
|
|
* @param $phone |
|
|
|