<?php
|
|
namespace App\Http\Controllers\Auth;
|
|
use App\Http\Controllers\Controller;
|
|
class ApiAuthController extends Controller
|
{
|
/**
|
* Create a new AuthController instance.
|
*
|
* @return void
|
*/
|
public function __construct()
|
{
|
$this->middleware(['api','jwt.auth'], ['except' => ['login']]);
|
}
|
|
/**
|
* Get a JWT via given credentials.
|
*
|
* @return \Illuminate\Http\JsonResponse
|
*/
|
public function login()
|
{
|
$credentials = request(['username', 'password']);
|
|
if (! $token = auth()->attempt($credentials)) {
|
return response()->json(['error' => 'invalid_credentials'], 401);
|
}
|
|
return $this->respondWithToken($token);
|
}
|
|
/**
|
* Get the authenticated User.
|
*
|
* @return \Illuminate\Http\JsonResponse
|
*/
|
public function me()
|
{
|
return response()->json(auth()->user());
|
}
|
|
/**
|
* Log the user out (Invalidate the token).
|
*
|
* @return \Illuminate\Http\JsonResponse
|
*/
|
public function logout()
|
{
|
auth()->logout();
|
|
return response()->json(['message' => 'Successfully logged out']);
|
}
|
|
/**
|
* Refresh a token.
|
*
|
* @return \Illuminate\Http\JsonResponse
|
*/
|
public function refresh()
|
{
|
return $this->respondWithToken(auth()->refresh());
|
}
|
|
/**
|
* Get the token array structure.
|
*
|
* @param string $token
|
*
|
* @return \Illuminate\Http\JsonResponse
|
*/
|
protected function respondWithToken($token)
|
{
|
return response()->json([
|
'token' => $token
|
]);
|
}
|
}
|