%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/workeasy-api/app/Http/Controllers/Api/
Upload File :
Create Path :
Current File : /var/www/html/workeasy-api/app/Http/Controllers/Api/AuthenticationController.php

<?php

namespace Workeasy\Http\Controllers\Api;

use Illuminate\Http\Request;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenBlacklistedException;
use Tymon\JWTAuth\Facades\JWTAuth;
use Workeasy\Http\Requests\Authentication\LoginRequest;
use Workeasy\Models\User;
use Workeasy\Transformers\UserTransformer;


class AuthenticationController extends ApiController
{
    public function login(LoginRequest $request)
    {
        $credentials = $request->only('email', 'password');
        $user = User::query()->where('email', $credentials['email'])->first();
        if (!$user) {
            return $this->response->errorUnauthorized(trans('auth.failed'));
        }
        try {
            if (!$token = JWTAuth::attempt($credentials)) {
                return $this->response->errorUnauthorized(trans('auth.failed'));
            }
        } catch (JWTException $e) {
            return $this->response->errorInternalError($e->getMessage());
        }
        return response(compact('token'));
    }

    public function logout(Request $request)
    {
        try {
            $token = $request->input('token');
            if (!$token) {
                $token = last(explode(' ', $request->header('Authorization')));
            }
            JWTAuth::invalidate($token);
            return response('', 201);

        } catch (TokenBlacklistedException $e) {
            return $this->response->errorUnauthorized($e->getMessage());
        } catch (JWTException $e) {
            return $this->response->errorInternalError($e->getMessage());
        }
    }

    public function me()
    {
        $user = JWTAuth::parseToken()->authenticate();
        return $this->response->withItem($user, new UserTransformer);
    }
}

Zerion Mini Shell 1.0