wesmiler 1 年之前
父节点
当前提交
1dc753b670

文件差异内容过多而无法显示
+ 2 - 2
addons/admin/dist/static/js/23.js


文件差异内容过多而无法显示
+ 2 - 2
addons/admin/dist/static/js/29.js


文件差异内容过多而无法显示
+ 2 - 2
addons/admin/dist/static/js/5.js


文件差异内容过多而无法显示
+ 1 - 1
addons/admin/dist/static/js/app.js


+ 11 - 0
app/Http/Controllers/Admin/LoginController.php

@@ -70,4 +70,15 @@ class LoginController extends Backend
         return $result;
     }
 
+    /**
+     * 验证账号是否绑定谷歌
+     * @return mixed
+     * @since 2020/11/11
+     * @author laravel开发员
+     */
+    public function checkAccount()
+    {
+        $result = $this->service->checkAccount();
+        return $result;
+    }
 }

+ 0 - 12
app/Http/Controllers/Admin/UserController.php

@@ -45,16 +45,4 @@ class UserController extends Backend
         $result = $this->service->resetPwd();
         return $result;
     }
-
-    /**
-     * 验证账号是否绑定谷歌
-     * @return mixed
-     * @since 2020/11/11
-     * @author laravel开发员
-     */
-    public function checkAccount()
-    {
-        $result = $this->service->checkAccount();
-        return $result;
-    }
 }

+ 6 - 4
app/Models/UserModel.php

@@ -14,6 +14,7 @@ namespace App\Models;
 use App\Services\Api\MemberService;
 use App\Services\Common\UserRoleService;
 use Earnp\GoogleAuthenticator\GoogleAuthenticator;
+use Earnp\GoogleAuthenticator\Librarys\GoogleAuthenticator as GoogleSecretAuthenticator;
 
 /**
  * 会员管理-模型
@@ -50,10 +51,11 @@ class UserModel extends BaseModel
 
             // 谷歌验证码处理
             $info['google_qrcode'] = '';
+            $username = $info['username'];
             if(empty($info['google_key'])){
-                    $googleData  = GoogleAuthenticator::CreateSecret();
-                    $googleKey = isset($googleData['secret'])?$googleData['secret'] : '';
-                    $googleUrl = isset($googleData['codeurl'])?$googleData['codeurl'] : '';
+                    $google = new GoogleSecretAuthenticator();
+                    $googleKey = $google->createSecret();//创建一个Secret
+                    $googleUrl="otpauth://totp/sbt@{$username}?secret=".$googleKey;//二维码中填充的内容
                     if($googleKey && $googleUrl){
                         UserModel::where(['id'=>$id])->update(['google_key'=> $googleKey,'update_time'=>time()]);
                         $info['google_key'] = $googleKey;
@@ -61,7 +63,7 @@ class UserModel extends BaseModel
                         $info['google_qrcode'] = get_image_url($info['google_qrcode']);
                     }
             }else{
-                $googleUrl = "otpauth://totp/?secret={$info['google_key']}";
+                $googleUrl = "otpauth://totp/SBT@{$username}?secret={$info['google_key']}";
                 $info['google_qrcode'] = MemberService::make()->makeQrcode($googleUrl,'google',true);
                 $info['google_qrcode'] = get_image_url($info['google_qrcode']);
             }

+ 27 - 2
app/Services/Common/LoginService.php

@@ -15,9 +15,9 @@ use App\Helpers\Jwt;
 use App\Models\ActionLogModel;
 use App\Models\UserModel;
 use App\Services\BaseService;
+use App\Services\RedisService;
 use Carbon\Carbon;
 use Earnp\GoogleAuthenticator\GoogleAuthenticator;
-use Illuminate\Support\Facades\Session;
 use Illuminate\Support\Facades\Validator;
 use Gregwar\Captcha\CaptchaBuilder;
 use Gregwar\Captcha\PhraseBuilder;
@@ -146,7 +146,7 @@ class LoginService extends BaseService
 
         // 谷歌验证码验证
         $googleBind = isset($info['google_bind'])? intval($info['google_bind']) : 0;
-        $googleKey = isset($info['google_key'])? trim($info['google_bind']) : '';
+        $googleKey = isset($info['google_key'])? trim($info['google_key']) : '';
         $googleCode = isset($param['google_code'])? trim($param['google_code']) : '';
         if($googleBind == 1 && $googleKey){
             if(empty($googleCode)){
@@ -190,4 +190,29 @@ class LoginService extends BaseService
         return message();
     }
 
+    /**
+     * 验证账号
+     * @return array
+     */
+    public function checkAccount()
+    {
+        // 获取参数
+        $param = request()->all();
+        $username = isset($param['username'])? trim($param['username']) : '';
+        if(empty($username)){
+            return message('请填写登录账号', false);
+        }
+
+        $cacheKey = "caches:user:checkAccount_".md5($username);
+        if($data = RedisService::get($cacheKey)){
+            return message(1010, true, $data);
+        }
+
+        $data = UserModel::where(['username'=>$username])->value('google_bind');
+        if($data){
+            RedisService::set($cacheKey, $data, rand(5, 10));
+        }
+        return message(1010, true, $data);
+    }
+
 }

+ 0 - 25
app/Services/Common/UserService.php

@@ -271,29 +271,4 @@ class UserService extends BaseService
         }
         return message("重置密码成功");
     }
-
-    /**
-     * 验证账号
-     * @return array
-     */
-    public function checkAccount()
-    {
-        // 获取参数
-        $param = request()->all();
-        $username = isset($param['username'])? trim($param['username']) : '';
-        if(empty($username)){
-            return message('请填写登录账号', false);
-        }
-
-        $cacheKey = "caches:user:checkAccount_".md5($username);
-        if($data = RedisService::get($cacheKey)){
-            return message(1010, true, $data);
-        }
-
-        $data = $this->model->where(['username'=>$username])->value('google_bind');
-        if($data){
-            RedisService::set($cacheKey, $data, rand(5, 10));
-        }
-        return message(1010, true, $data);
-    }
 }

+ 2 - 1
routes/web.php

@@ -53,6 +53,7 @@ Route::get('/captcha', [LoginController::class, 'captcha'])->name('captcha');
 Route::post('/login', [LoginController::class, 'login']);
 Route::get('/logout', [LoginController::class, 'logout']);
 
+
 // 系统主页
 
 Route::post('/index/data', [IndexController::class, 'indexData']);
@@ -69,7 +70,7 @@ Route::post('/user/edit', [UserController::class, 'edit']);
 Route::post('/user/delete', [UserController::class, 'delete']);
 Route::post('/user/status', [UserController::class, 'status']);
 Route::post('/user/resetPwd', [UserController::class, 'resetPwd']);
-Route::post('/user/checkAccount', [UserController::class, 'checkAccount']);
+Route::post('/user/checkAccount', [LoginController::class, 'checkAccount']);
 
 // 角色管理
 Route::get('/role/index', [RoleController::class, 'index']);