<?php /** * File AuthController.php * * @author Tuan Duong <bacduong@gmail.com> * @package Laravue * @version 1.0 */ namespace App\Http\Controllers; use App\Laravue\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use App\Http\Resources\UserResource; /** * Class AuthController * * @package App\Http\Controllers */ class AuthController extends Controller { /** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function login(Request $request) { $credentials = $request->only('email', 'password'); if (!Auth::attempt($credentials)) { return response()->json(new JsonResponse([], 'login_error'), Response::HTTP_UNAUTHORIZED); } $user = $request->user(); $tokenResult = $user->createToken('Personal Access Token'); $token = $tokenResult->token; $token->save(); return response()->json(new UserResource($user), Response::HTTP_OK)->header('Authorization', $tokenResult->accessToken); } public function logout(Request $request) { $request->user()->token()->revoke(); return response()->json((new JsonResponse())->success([]), Response::HTTP_OK); } public function user() { return new UserResource(Auth::user()); } }