post('email')); $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')); } $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')); } $user = $user->toArray(); $userPassword = $user['password']; //加密 $hashedPassword = password_hash($password, PASSWORD_DEFAULT); //验证密码 if (!password_verify($userPassword, $hashedPassword)) { return Util::fail([],trans('password_error')); } $userId = $user['id']; // 实际从数据库获取 Redis::set('user_'.$userId, $user); //密码验证成功后加密生成 Token $token = JwtUtil::generateToken($userId); $result = $user; unset($result['password']); $result['token'] = $token; return Util::success($result,trans('login_success')); } /** * 发送邮箱验证码 * @param Request $request * @return \support\Response * @throws \Random\RandomException */ public function sendCode(Request $request) { // $email = $request->input('email'); $email = '1696136552@qq.com'; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return json(['code' => 400, 'msg' => '邮箱格式错误']); } // 生成验证码 $code = str_pad(random_int(0, 999999), 6, '0', STR_PAD_LEFT); // 发送邮件 $mailService = new MailService(); if ($mailService->sendVerificationCode($email, $code)) { // 存储验证码到 Redis Redis::set("verification_code:{$email}", $code, 300); return Util::success([],'验证码已发送'); } return Util::fail([],'邮件发送失败'); } }