%PDF- %PDF-
Direktori : /var/www/html/diaspora/api_internal/app/Http/Controllers/Api/v1/ |
Current File : /var/www/html/diaspora/api_internal/app/Http/Controllers/Api/v1/AuthController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Users\ChangePasswordRequest; use App\Models\User; use App\Transformers\UserTransformer; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Laravel\Passport\Bridge\AccessToken; class AuthController extends ApiController { public function login(Request $request) { if (Auth::attempt(['email' => $request->get('email'), 'password' => $request->get('password')])) { /** @var User $user */ $user = Auth::user(); if (!$user->is_confirmed) { return response()->json(['error' => 'Account is not confirmed yet.'], 401); } if (!$user->is_enabled) { return response()->json(['error' => 'Account is disabled, contact your system administrator for more information.'], 401); } if ($user->roles()->count() === 0) { return response()->json(['error' => 'Unauthorised'], 401); } $accessToken = $user->createToken('api')->accessToken; return response()->json([ 'token' => $accessToken, ], 200); } else { return response()->json(['error' => 'Unauthorised'], 401); } } public function me() { $user = auth() ->guard('api') ->user(); return $this->item($user, new UserTransformer); } public function changePassword(ChangePasswordRequest $request) { /** @var User $user */ $user = auth() ->guard('api') ->user(); $user->password = $request->get('password'); $user->save(); return $this->item($user, new UserTransformer); } public function logout() { if (Auth::check()) { /** @var AccessToken $accessToken */ $accessToken = Auth::user() ->token(); DB::table('oauth_refresh_tokens') ->where('access_token_id', $accessToken->id) ->update([ 'revoked' => true, ]); $accessToken->revoke(); return response()->json(null, 204); } } }