Browse Source

用户相关

kphcdr 1 year ago
parent
commit
742e533672

+ 11 - 3
app/Modules/Mini/Controllers/AuthController.php

@@ -45,10 +45,18 @@ class AuthController extends BaseController
 
     public function decryptPhone()
     {
+        $params = $this->valid([
+            "iv" => "required",
+            "encrypted_data" => "required",
+            "session_key" => "required",
+        ]);
+        app(WechatService::class)->decryptPhone($params);
+        /** @var User $user */
+        $user = \Auth::user();
         return $this->ok([
-            "token" => "token",
-            "name" => "",
-            "phone" => "",
+            "token" => app(AuthService::class)->encryptToken($user->id),
+            "name" => $user->name,
+            "phone" => $user->phone,
         ]);
     }
 

+ 16 - 0
app/Modules/Mini/Services/WechatService.php

@@ -7,6 +7,7 @@ use App\Exceptions\ClientException;
 use App\Models\User\User;
 use EasyWeChat\Kernel\HttpClient\Response;
 use EasyWeChat\MiniApp\Application;
+use Illuminate\Support\Arr;
 
 class WechatService extends BaseService
 {
@@ -50,6 +51,21 @@ class WechatService extends BaseService
         $user->save();
     }
 
+    public function decryptPhone($params)
+    {
+        $data = $this->wechat()->getUtils()->decryptSession($params['session_key'], $params['iv'], $params['encrypted_data']);
+
+        /** @var User $user */
+        $user = \Auth::user();
+        if (is_null($user)) {
+            throw new ClientException("need Authentication");
+        }
+        if ($phone = Arr::get($data, "phone")) {
+            $user->phone = $phone;
+            $user->save();
+        }
+    }
+
     /**
      * @return Application
      */