%PDF- %PDF-
Direktori : /var/www/html/o91-api/app/Http/Controllers/Api/v1/ |
Current File : /var/www/html/o91-api/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\UserApplications\UserApplicationRequest; use App\Mail\RegisterCreated; use App\Models\User; use App\Models\UserApplication; use App\Transformers\UserTransformer; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; 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); } $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 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); } } /** * @param UserApplicationRequest $request */ public function register(UserApplicationRequest $request) { /** @var UserApplication $app */ $app = UserApplication::query() ->create([ 'name' => $request->get('name'), 'surname' => $request->get('surname'), 'phone' => $request->get('phone'), 'email' => $request->get('email'), 'short_description' => $request->get('short_description'), ]); Mail::to(env('SENT_TO_MAIL', 'info@bbw-it-consulting.com')) ->later(Carbon::now()->addSeconds(15), new RegisterCreated($app)); } }