Sfoglia il codice sorgente

[智价云] 手机验证码查询校验更新

tangyuanwang 1 mese fa
parent
commit
4a2bd7dd63
2 ha cambiato i file con 102 aggiunte e 100 eliminazioni
  1. 98 97
      app/Http/Controllers/Api/Login.php
  2. 4 3
      app/Http/Controllers/Manager/Login.php

+ 98 - 97
app/Http/Controllers/Api/Login.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api;
 use App\Models\Api\Personnel\Employee as EmployeeModel;
 use App\Http\Requests\Api\Login as Request;
 use App\Facades\Servers\Sms\VerifyCode as Sms;
+use Illuminate\Support\Facades\Cache;
 
 /**
  * API登录控制器
@@ -16,103 +17,103 @@ use App\Facades\Servers\Sms\VerifyCode as Sms;
 class Login extends Api
 {
 
-    /**
-     * 登录方法				/manager/login/index
-     * @author 唐远望
-     * @version   1.0
-     * @date      2025-12-09
-     * @param string 	employee_code	登录账号
-     * @param string 	password	登录密码
-     * 
-     * */
-    public function index(Request $Request, EmployeeModel $EmployeeModel)
-    {
-        // 验证规则
-        $Request->scene('login')->validate();
-        // 接收数据
-        $employee_code    = $Request->input('employee_code', '');
-        // 接收数据
-        $password    = $Request->input('password', '');
-        // 查询用户
-        $admin        = $EmployeeModel->Where('employee_code', $employee_code)->first(['id', 'name', 'mobile', 'status', 'password', 'insert_time', 'update_time']);
-        // 用户不存在
-        if (!$admin || $admin['status'])    return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
-        // 用户不存在
-        if ($admin['status'])                 return json_send(['code' => 'error', 'msg' => '该账号已停用']);
-        // 转数组
-        $admin        = $admin->toArray();
-        // 比对密码
-        if (md5($password) != $admin['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
-        // 登录
-        $accessToken                         = $EmployeeModel->Login($admin['id'], 'api');
-        // 比对密码
-        if (isset($accessToken['error']))     return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
-        // 获取权限列表
-        $accessToken['username']            = $admin['name'];
-        // 表单令牌
-        return        json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
-    }
+	/**
+	 * 登录方法				/manager/login/index
+	 * @author 唐远望
+	 * @version   1.0
+	 * @date      2025-12-09
+	 * @param string 	employee_code	登录账号
+	 * @param string 	password	登录密码
+	 * 
+	 * */
+	public function index(Request $Request, EmployeeModel $EmployeeModel)
+	{
+		// 验证规则
+		$Request->scene('login')->validate();
+		// 接收数据
+		$employee_code    = $Request->input('employee_code', '');
+		// 接收数据
+		$password    = $Request->input('password', '');
+		// 查询用户
+		$admin        = $EmployeeModel->Where('employee_code', $employee_code)->first(['id', 'name', 'mobile', 'status', 'password', 'insert_time', 'update_time']);
+		// 用户不存在
+		if (!$admin || $admin['status'])    return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
+		// 用户不存在
+		if ($admin['status'])                 return json_send(['code' => 'error', 'msg' => '该账号已停用']);
+		// 转数组
+		$admin        = $admin->toArray();
+		// 比对密码
+		if (md5($password) != $admin['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
+		// 登录
+		$accessToken                         = $EmployeeModel->Login($admin['id'], 'api');
+		// 比对密码
+		if (isset($accessToken['error']))     return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
+		// 获取权限列表
+		$accessToken['username']            = $admin['name'];
+		// 表单令牌
+		return        json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
+	}
 
 
-    /**
-     * 退出方法				/manager/login/out
-     * @author 唐远望
-     * @version   1.0
-     * @date      2025-12-09
-     * @param string 	authcode	用户令牌
-     * 
-     */
-    public function out(EmployeeModel $EmployeeModel)
-    {
-        $user_info = $this->checkLogin();
-        // 验证规则
-        $uid         =$user_info['uid'];
-        // 退出登录
-        $EmployeeModel->LoginOut($uid, 'api');
-        // 表单令牌
-        return        json_send(['code' => 'success', 'msg' => '退出成功', 'data' => '']);
-    }
+	/**
+	 * 退出方法				/manager/login/out
+	 * @author 唐远望
+	 * @version   1.0
+	 * @date      2025-12-09
+	 * @param string 	authcode	用户令牌
+	 * 
+	 */
+	public function out(EmployeeModel $EmployeeModel)
+	{
+		$user_info = $this->checkLogin();
+		// 验证规则
+		$uid         = $user_info['uid'];
+		// 退出登录
+		$EmployeeModel->LoginOut($uid, 'api');
+		// 表单令牌
+		return        json_send(['code' => 'success', 'msg' => '退出成功', 'data' => '']);
+	}
 
 
-    /**
-     * 手机号码登录			/manager/login/mobile
-     * @author 唐远望
-     * @version   1.0
-     * @date      2025-12-04
-     * @param string 	mobile		手机号码
-     * @param string 	password	登录密码
-     * 
-     */
-    public function mobile(Request $Request, EmployeeModel $EmployeeModel)
-    {
-        // 验证规则
-        $Request->scene('mobile')->validate();
-        // 接收数据
-        $phone    = $Request->input('phone', '');
-        // 接收数据
-        $password    = $Request->input('password', '');
-        // 查询用户
-        $user_info        = $EmployeeModel->where('mobile', $phone)->first(['id', 'name', 'mobile', 'status', 'password', 'insert_time', 'update_time']);
-        // 用户不存在
-        if (!$user_info || $user_info['status'])    return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
-        // 用户不存在
-        if ($user_info['status'])                 return json_send(['code' => 'error', 'msg' => '该账号已停用']);
-        // 转数组
-        $user_info        = $user_info->toArray();
-        // 比对密码
-        if (md5($password) != $user_info['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
-        // 登录
-        $accessToken                         = $EmployeeModel->Login($user_info['id'], 'api');
-        // 比对密码
-        if (isset($accessToken['error']))     return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
-        // 获取权限列表
-        $accessToken['username']            = $user_info['name'];
-        // 表单令牌
-        return        json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
-    }
+	/**
+	 * 手机号码登录			/manager/login/mobile
+	 * @author 唐远望
+	 * @version   1.0
+	 * @date      2025-12-04
+	 * @param string 	mobile		手机号码
+	 * @param string 	password	登录密码
+	 * 
+	 */
+	public function mobile(Request $Request, EmployeeModel $EmployeeModel)
+	{
+		// 验证规则
+		$Request->scene('mobile')->validate();
+		// 接收数据
+		$phone    = $Request->input('phone', '');
+		// 接收数据
+		$password    = $Request->input('password', '');
+		// 查询用户
+		$user_info        = $EmployeeModel->where('mobile', $phone)->first(['id', 'name', 'mobile', 'status', 'password', 'insert_time', 'update_time']);
+		// 用户不存在
+		if (!$user_info || $user_info['status'])    return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
+		// 用户不存在
+		if ($user_info['status'])                 return json_send(['code' => 'error', 'msg' => '该账号已停用']);
+		// 转数组
+		$user_info        = $user_info->toArray();
+		// 比对密码
+		if (md5($password) != $user_info['password']) return json_send(['code' => 'error', 'msg' => '密码错误或账号不存在']);
+		// 登录
+		$accessToken                         = $EmployeeModel->Login($user_info['id'], 'api');
+		// 比对密码
+		if (isset($accessToken['error']))     return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
+		// 获取权限列表
+		$accessToken['username']            = $user_info['name'];
+		// 表单令牌
+		return        json_send(['code' => 'success', 'msg' => '登录成功', 'data' => $accessToken]);
+	}
 
 
-    /**
+	/**
 	 * 发送验证码
 	 * @author 唐远望
 	 * @version   1.0
@@ -128,7 +129,7 @@ class Login extends Api
 		$mobile		 = request('phone', '');
 		if (!$mobile)	return json_send(['code' => 'error', 'msg' => '请先填写手机号']);
 		// 获取数据
-		$session	= session('loginSmsCode');
+		$session	= Cache::get('loginSmsCode_' . $mobile);
 		// 如果有数据,并且验证码创建的时间在一分钟之内
 		if ($session && time() - $session['create_time'] < 60) return json_send(['code' => 'error', 'msg' => '请稍后再试']);
 		// 查询用户
@@ -138,7 +139,7 @@ class Login extends Api
 		$result    = Sms::sendCode($mobile, $code);
 		if (isset($result['error']))	return json_send(['code' => 'error', 'msg' => $result['error']]);
 		$session 	= ['code' => $code, 'mobile' => $mobile, 'create_time' => time()];
-		session(['loginSmsCode' => $session]);
+		Cache::put('loginSmsCode_' . $mobile, $session, 60);
 		return							json_send(['code' => 'success', 'msg' => '发送成功', 'data' => $code]);
 	}
 
@@ -151,7 +152,7 @@ class Login extends Api
 	 * @param string 	password	登录密码
 	 * 
 	 */
-	public function email(Request $Request,EmployeeModel $EmployeeModel)
+	public function email(Request $Request, EmployeeModel $EmployeeModel)
 	{
 		// 验证规则
 		$Request->scene('email')->validate();
@@ -188,7 +189,7 @@ class Login extends Api
 	 * @param string 	code	验证码
 	 * 
 	 */
-	public function mobile_code(Request $Request,EmployeeModel $EmployeeModel)
+	public function mobile_code(Request $Request, EmployeeModel $EmployeeModel)
 	{
 		// 验证规则
 		$Request->scene('mobile_code')->validate();
@@ -197,7 +198,7 @@ class Login extends Api
 		// 接收数据
 		$code    = $Request->input('code', '');
 		// 获取数据
-		$session						    = session('loginSmsCode');
+		$session	= Cache::get('loginSmsCode_' . $phone);
 		if (!$session)                     return json_send(['code' => 'error', 'msg' => '请先获取手机号验证码']);
 		if ($session['code'] != $code || $session['phone'] != $phone) return json_send(['code' => 'error', 'msg' => '验证码错误']);
 		// 查询用户
@@ -209,7 +210,7 @@ class Login extends Api
 		// 转数组
 		$admin    	= $admin->toArray();
 		// 登录
-		$accessToken 						= $EmployeeModel->Login($admin['uid'],'api');
+		$accessToken 						= $EmployeeModel->Login($admin['uid'], 'api');
 		// 比对密码
 		if (isset($accessToken['error'])) 	return json_send(['code' => 'error', 'msg' => '登录失败', 'data' => $accessToken['data']]);
 		// 获取权限列表

+ 4 - 3
app/Http/Controllers/Manager/Login.php

@@ -11,6 +11,7 @@ use App\Facades\Servers\Sms\VerifyCode as Sms;
 use App\Models\Manager\Personnel\EmployeeOpenid as EmployeeOpenidModel;
 use App\Servers\Wechat\WeChatWebApp;
 use App\Models\Manager\Personnel\RolesAuthRule as RolesAuthRuleModel;
+use Illuminate\Support\Facades\Cache;
 
 /**
  * 管理后台登录控制器
@@ -186,7 +187,7 @@ class Login extends Manager
 		$mobile		 = request('phone', '');
 		if (!$mobile)	return json_send(['code' => 'error', 'msg' => '请先填写手机号']);
 		// 获取数据
-		$session	= session('loginSmsCode');
+		$session	= Cache::get('loginSmsCode_' . $mobile);
 		// 如果有数据,并且验证码创建的时间在一分钟之内
 		if ($session && time() - $session['create_time'] < 60) return json_send(['code' => 'error', 'msg' => '请稍后再试']);
 		// 查询用户
@@ -196,7 +197,7 @@ class Login extends Manager
 		$result    = Sms::sendCode($mobile, $code);
 		if (isset($result['error']))	return json_send(['code' => 'error', 'msg' => $result['error']]);
 		$session 	= ['code' => $code, 'mobile' => $mobile, 'create_time' => time()];
-		session(['loginSmsCode' => $session]);
+		Cache::put('loginSmsCode_' . $mobile, $session, 60);
 		return							json_send(['code' => 'success', 'msg' => '发送成功', 'data' => $code]);
 	}
 
@@ -255,7 +256,7 @@ class Login extends Manager
 		// 接收数据
 		$code    = $Request->input('code', '');
 		// 获取数据
-		$session						    = session('loginSmsCode');
+		$session	= Cache::get('loginSmsCode_' . $phone);
 		if (!$session)                     return json_send(['code' => 'error', 'msg' => '请先获取手机号验证码']);
 		if ($session['code'] != $code || $session['phone'] != $phone) return json_send(['code' => 'error', 'msg' => '验证码错误']);
 		// 查询用户