瀏覽代碼

登录问题处理

wanghaijun 4 年之前
父節點
當前提交
410bf5fb6a
共有 1 個文件被更改,包括 22 次插入17 次删除
  1. 22 17
      app/Http/Controllers/Api/mini/AuthController.php

+ 22 - 17
app/Http/Controllers/Api/mini/AuthController.php

xqd
@@ -32,44 +32,49 @@ class AuthController extends BaseController
     //将这一步的通过微信授权登陆改为直接手机授权登陆
     public function loginByWechat(Request $request)
     {
-        $app = app('wechat.mini_program');
+//        $app = app('wechat.mini_program');
+        $config = [
+            'app_id'  => env('WECHAT_MINI_PROGRAM_APPID', ''),
+            'secret'  => env('WECHAT_MINI_PROGRAM_SECRET', ''),
+        ];
+        $app = Factory::miniProgram($config);
+
         $session_key = $request->input('session_key');
         if(!$session_key && $request->input('code')) {
             $res = $app->auth->session($request->input('code'));
+            if (empty($res['openid']) || empty($res['session_key'])){
+                return $this->error(['msg' => '微信code错误']);
+            }
             if(isset($res['session_key'])) $session_key = $res['session_key'];
         }
         if($session_key) {
             $data = $app->encryptor->decryptData($session_key, $request->input('iv'), $request->input('encryptedData'));
+            Log::info('info'.json_encode($data));
+
             if(isset($data['phoneNumber'])) {
                 $user = Auth::guard('mini')->user();
                 //在数据库中若存在该手机号码的数据需要update进行修改数据、若不存在需要向数据库中添加数据
-                $phone = User::where("phone","=",$data['phoneNumber'])->first();
-                if(!empty($phone)){
+                $user = User::where("phone","=",$data['phoneNumber'])->first();
+
+                if(!empty($user) && !empty($user->phone)){
                     //存在手机号码直接修改
-                    User::where('phone',$data['phoneNumber'] )->update([
-                        [
-                            'open_id' => $data['openId']
-                        ], [
-                            'name' => $data['nickName'],
-                            'nickname' => $data['nickName'],
-                            'avatar' => $data['avatarUrl']
-                        ]
-                    ]);
-                    return $this->error(['msg' => '后台已经存在这个手机号码了,请换一个手机号码绑定']);
+                    User::where('open_id',$res['openid'] )->update(['phone' => $data['phoneNumber']]);
+                    $user->updateToken();
+                    $user = $user->getUserInfo($session_key);
+                    return $this->success(['data' => $user]);
+//                    return $this->error(['msg' => '后台已经存在这个手机号码了,请换一个手机号码绑定']);
                 }
                 //不存在手机号码直接添加数据
                 $user = User::firstOrCreate([
-                    'open_id' => $data['openId']
+                    'open_id' => $res['openid']
                 ], [
                     'phone' => $data['phoneNumber'],
-                    'name' => $data['nickName'],
-                    'nickname' => $data['nickName'],
-                    'avatar' => $data['avatarUrl']
                 ]);
                 $user = $user->getUserInfo($session_key);
                 return $this->success(['data' => $user]);
             }
 
+
             return $this->error(['msg' => '获取失败']);
         }
         return $this->error(['msg' => '获取失败']);