Browse Source

用户相关

kphcdr 1 year ago
parent
commit
69bccc15f5

+ 9 - 2
app/Models/User/User.php

@@ -5,6 +5,7 @@ namespace App\Models\User;
 use App\Base\BaseModel;
 use App\Models\Auth\AdminGroup;
 use Illuminate\Auth\Authenticatable;
+use Illuminate\Support\Arr;
 
 /**
  * App\Models\User
@@ -33,10 +34,11 @@ use Illuminate\Auth\Authenticatable;
  * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
  * @mixin \Eloquent
  * @property-read \App\Models\User\UserCompany|null $company
- * @property string $openid 微信openid
+ * @property string                                 $openid 微信openid
  * @method static \Illuminate\Database\Eloquent\Builder|User whereOpenid($value)
- * @property string $name 用户昵称
+ * @property string                                 $name 用户昵称
  * @method static \Illuminate\Database\Eloquent\Builder|User whereName($value)
+ * @property-read mixed                             $avatar
  */
 class User extends BaseModel implements \Illuminate\Contracts\Auth\Authenticatable
 {
@@ -70,4 +72,9 @@ class User extends BaseModel implements \Illuminate\Contracts\Auth\Authenticatab
     {
         return $this->hasOne(UserCompany::class, "user_id", "id");
     }
+
+    public function getAvatarAttribute()
+    {
+        return Arr::get($this->extra, "wechat.avatar", "");
+    }
 }

+ 16 - 7
app/Modules/Mini/Controllers/AuthController.php

@@ -6,7 +6,7 @@ use App\Base\BaseController;
 use App\Models\User\User;
 use App\Modules\Mini\Services\AuthService;
 use App\Modules\Mini\Services\WechatService;
-use Faker\Provider\Image;
+use Illuminate\Support\Facades\Auth;
 
 class AuthController extends BaseController
 {
@@ -62,15 +62,24 @@ class AuthController extends BaseController
 
     public function profile()
     {
+        /** @var User $user */
+        $user = Auth::user();
         return $this->ok([
-            "id" => 1,
-            "token" => "token",
-            "name" => "用户名称",
-            "avatar" => Image::imageUrl(),
+            "id" => $user->id,
+            "token" => app(AuthService::class)->encryptToken($user->id),
+            "name" => $user->name,
+            "avatar" => $user->avatar,
             "company" => [
-                "id" => 1,
-                "name" => "公司名称",
+                "id" => optional($user->company)->id ?? 0,
+                "name" => optional($user->company)->name ?? "",
             ],
         ]);
     }
+
+    public function test()
+    {
+        $id = request()->input("id");
+
+        return $this->ok(app(AuthService::class)->encryptToken($id));
+    }
 }

+ 1 - 1
app/Modules/Mini/Services/AuthService.php

@@ -24,7 +24,7 @@ class AuthService extends BaseService
 
     public function encryptToken($uid)
     {
-        return md5($uid) . $uid;
+        return md5($uid . time()) . $uid;
     }
 
     public function decryptToken($token)

+ 1 - 0
routes/mini.php

@@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Route;
 Route::get('/', [\App\Http\Controllers\Controller::class, "ping"]);
 
 Route::post("/auth/codeToSession", [\App\Modules\Mini\Controllers\AuthController::class, "codeToSession"]);
+Route::get("/auth/test", [\App\Modules\Mini\Controllers\AuthController::class, "test"]);
 Route::middleware([\App\Http\Middleware\MiniAuthMiddleware::class])->group(function () {
     Route::post("/auth/decryptUserInfo", [\App\Modules\Mini\Controllers\AuthController::class, "decryptUserInfo"]);
     Route::post("/auth/decryptPhone", [\App\Modules\Mini\Controllers\AuthController::class, "decryptPhone"]);