Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/AuthController.php
Show All 14 Lines | class AuthController extends Controller | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse | * @return \Illuminate\Http\JsonResponse | ||||
*/ | */ | ||||
public function info() | public function info() | ||||
{ | { | ||||
$user = Auth::guard()->user(); | $user = Auth::guard()->user(); | ||||
$response = V4\UsersController::userResponse($user); | $response = V4\UsersController::userResponse($user); | ||||
if (!empty(request()->input('refresh_token'))) { | |||||
// @phpstan-ignore-next-line | |||||
return $this->respondWithToken(Auth::guard()->refresh(), $response); | |||||
} | |||||
return response()->json($response); | return response()->json($response); | ||||
} | } | ||||
/** | /** | ||||
* Helper method for other controllers with user auto-logon | * Helper method for other controllers with user auto-logon | ||||
* functionality | * functionality | ||||
* | * | ||||
* @param \App\User $user User model object | * @param \App\User $user User model object | ||||
*/ | */ | ||||
public static function logonResponse(User $user) | public static function logonResponse(User $user) | ||||
{ | { | ||||
// @phpstan-ignore-next-line | // @phpstan-ignore-next-line | ||||
$token = Auth::guard()->login($user); | $token = Auth::guard()->login($user); | ||||
return response()->json([ | return self::respondWithToken($token, ['status' => 'success']); | ||||
'status' => 'success', | |||||
'access_token' => $token, | |||||
'token_type' => 'bearer', | |||||
// @phpstan-ignore-next-line | |||||
'expires_in' => Auth::guard()->factory()->getTTL() * 60, | |||||
]); | |||||
} | } | ||||
/** | /** | ||||
* Get a JWT token via given credentials. | * Get a JWT token via given credentials. | ||||
* | * | ||||
* @param \Illuminate\Http\Request $request The API request. | * @param \Illuminate\Http\Request $request The API request. | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse | * @return \Illuminate\Http\JsonResponse | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | class AuthController extends Controller | ||||
{ | { | ||||
// @phpstan-ignore-next-line | // @phpstan-ignore-next-line | ||||
return $this->respondWithToken(Auth::guard()->refresh()); | return $this->respondWithToken(Auth::guard()->refresh()); | ||||
} | } | ||||
/** | /** | ||||
* Get the token array structure. | * Get the token array structure. | ||||
* | * | ||||
* @param string $token Respond with this token. | * @param string $token Respond with this token. | ||||
* @param array $response Additional response data | |||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse | * @return \Illuminate\Http\JsonResponse | ||||
*/ | */ | ||||
protected function respondWithToken($token) | protected static function respondWithToken($token, array $response = []) | ||||
{ | { | ||||
return response()->json( | $response['access_token'] = $token; | ||||
[ | $response['token_type'] = 'bearer'; | ||||
'access_token' => $token, | |||||
'token_type' => 'bearer', | |||||
// @phpstan-ignore-next-line | // @phpstan-ignore-next-line | ||||
'expires_in' => Auth::guard()->factory()->getTTL() * 60 | $response['expires_in'] = Auth::guard()->factory()->getTTL() * 60; | ||||
] | |||||
); | return response()->json($response); | ||||
} | } | ||||
} | } |