only('email', 'password'))) { return ApiResponse::unauthorized(); } $user = Auth::user(); // 3. 產生或取得 Token if (empty($user->api_plain_token)) { $token = $user->createToken('*')->plainTextToken; $user->api_plain_token = $token; $user->save(); } else { $token = $user->api_plain_token; } return \App\Http\Responses\ApiResponse::success(['token' => $token]); } /** * @OA\Get( * path="/api/profile", * summary="Get current user profile", * tags={"Auth"}, * security={{"Authorization":{}}}, * @OA\Response( * response=200, * description="User profile", * @OA\JsonContent( * allOf={ * @OA\Schema(ref="#/components/schemas/ApiResponse"), * @OA\Schema( * @OA\Property(property="data", ref="#/components/schemas/User") * ) * } * ) * ), * @OA\Response( * response=401, * description="Unauthorized", * @OA\JsonContent( * allOf={ * @OA\Schema(ref="#/components/schemas/ApiResponse"), * @OA\Schema( * @OA\Property(property="code", type="string", example="UNAUTHORIZED"), * @OA\Property(property="message", type="string", example="Unauthorized"), * @OA\Property(property="data", type="null") * ) * } * ) * ), * @OA\Parameter( * name="Accept", * in="header", * required=true, * @OA\Schema(type="string", default="application/json") * ) * ) */ public function profile(Request $request) { return \App\Http\Responses\ApiResponse::success($request->user()); } }