11
This commit is contained in:
@@ -14,26 +14,24 @@ class UserController
|
||||
/**
|
||||
* 不需要登录的方法
|
||||
*/
|
||||
protected $noNeedLogin = ['login','sendCode'];
|
||||
protected $noNeedLogin = ['login', 'sendCode', 'register'];
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
// Util::isEmpty($request->post('email'));
|
||||
$email = Util::getParam($request,'email');
|
||||
if(Util::isEmpty($email)){
|
||||
return Util::fail([],'email'.trans('not_null'));
|
||||
$email = Util::getParam($request, 'email');
|
||||
if (Util::isEmpty($email)) {
|
||||
return Util::fail([], 'email' . trans('not_null'));
|
||||
}
|
||||
// Util::isEmpty($request->post('password'));
|
||||
$password = Util::getParam($request,'password');
|
||||
if(Util::isEmpty($password)){
|
||||
return Util::fail([],'password'.trans('not_null'));
|
||||
$password = Util::getParam($request, 'password');
|
||||
if (Util::isEmpty($password)) {
|
||||
return Util::fail([], 'password' . trans('not_null'));
|
||||
}
|
||||
$user = User::select(['id','name','sex','role','avatar','email','password'])
|
||||
->where('status',0)
|
||||
->where('email',$request->post('email'))
|
||||
$user = User::select(['id', 'name', 'sex', 'role', 'avatar', 'email', 'password'])
|
||||
->where('status', 0)
|
||||
->where('email', $request->post('email'))
|
||||
->first();
|
||||
if(!$user){
|
||||
return Util::fail(['user'=>$user],trans('user_none'));
|
||||
if (!$user) {
|
||||
return Util::fail(['user' => $user], trans('user_none'));
|
||||
}
|
||||
$user = $user->toArray();
|
||||
|
||||
@@ -44,12 +42,12 @@ class UserController
|
||||
|
||||
//验证密码
|
||||
if (!password_verify($userPassword, $hashedPassword)) {
|
||||
return Util::fail([],trans('password_error'));
|
||||
return Util::fail([], trans('password_error'));
|
||||
}
|
||||
$userId = $user['id']; // 实际从数据库获取
|
||||
|
||||
|
||||
Redis::set('user_'.$userId, $user);
|
||||
Redis::set('user_' . $userId, $user);
|
||||
|
||||
//密码验证成功后加密生成 Token
|
||||
$token = JwtUtil::generateToken($userId);
|
||||
@@ -57,7 +55,7 @@ class UserController
|
||||
unset($result['password']);
|
||||
$result['token'] = $token;
|
||||
|
||||
return Util::success($result,trans('login_success'));
|
||||
return Util::success($result, trans('login_success'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,10 +66,9 @@ class UserController
|
||||
*/
|
||||
public function sendCode(Request $request)
|
||||
{
|
||||
// $email = $request->input('email');
|
||||
$email = '1696136552@qq.com';
|
||||
$email = Util::getParam($request,'email');
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return json(['code' => 400, 'msg' => '邮箱格式错误']);
|
||||
return Util::fail([], 'email' . trans('not_null'));
|
||||
}
|
||||
|
||||
// 生成验证码
|
||||
@@ -82,13 +79,76 @@ class UserController
|
||||
if ($mailService->sendVerificationCode($email, $code)) {
|
||||
// 存储验证码到 Redis
|
||||
Redis::set("verification_code:{$email}", $code, 300);
|
||||
return Util::success([],'验证码已发送');
|
||||
return Util::success([], '验证码已发送');
|
||||
}
|
||||
|
||||
return Util::fail([],'邮件发送失败');
|
||||
return Util::fail([], '邮件发送失败');
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册
|
||||
* @param Request $request
|
||||
* @return \support\Response
|
||||
* @throws \Random\RandomException
|
||||
*/
|
||||
public function register(Request $request)
|
||||
{
|
||||
$email = Util::getParam($request,'email','asdf');
|
||||
$code = Util::getParam($request,'code');
|
||||
$sex = Util::getParam($request,'sex',0);
|
||||
$name = Util::getParam($request,'name',0);
|
||||
$password = Util::getParam($request,'password');
|
||||
$mobile = Util::getParam($request,'mobile');
|
||||
$id = Util::getParam($request,'id');
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return Util::fail([], 'email'.$email . trans('not_null'));
|
||||
}
|
||||
|
||||
$res = User::select('id', 'email')
|
||||
->where('email', $email)
|
||||
->first();
|
||||
// if (!Util::isEmpty($res)) {
|
||||
// return Util::fail([], trans('email_repeat'));
|
||||
// }
|
||||
|
||||
if (Util::isEmpty($name)) {
|
||||
return Util::fail([], 'name' . trans('not_null'));
|
||||
}
|
||||
|
||||
$verification_code = Redis::get("verification_code:{$email}");
|
||||
|
||||
if ($code != $verification_code) {
|
||||
return Util::fail([], trans('code_error'));
|
||||
}
|
||||
|
||||
//加密
|
||||
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
|
||||
|
||||
$data = [
|
||||
'mobile' => $mobile,
|
||||
'email' => $email,
|
||||
'name' => $name,
|
||||
'sex' => $sex,
|
||||
'role' => 1,
|
||||
'password' => $hashedPassword,
|
||||
];
|
||||
|
||||
if (Util::isEmpty($id)) {
|
||||
$res = User::create($data);
|
||||
} else {
|
||||
$res = User::where('id', $id)
|
||||
->update($data);
|
||||
// Log::info('update', ['res' => $res]);
|
||||
(!$res)?: $res=User::find($id)->toArray();
|
||||
}
|
||||
|
||||
if ($res) {
|
||||
return Util::success($res);
|
||||
} else {
|
||||
return Util::fail($res);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user