File manager - Edit - /home/autoph/public_html/projects/aha-api/app/Http/Controllers/API/AuthController.php
Back
<?php namespace App\Http\Controllers\API; use Carbon\Carbon; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Routing\Controllers\Middleware; use Illuminate\Routing\Controllers\HasMiddleware; class AuthController extends Controller implements HasMiddleware { /** * Get the middleware that should be assigned to the controller. */ public static function middleware(): array { return [ new Middleware('auth:api', except: ['login', 'register','autoLogin']), ]; } public function login(Request $request) { // return response()->json(['message'=>'success']); $request->validate([ // 'email' => 'required|string|email', 'username' => 'required|string', 'password' => 'required|string', ]); /**CHECK USER IF EXISTING IN THE CURRENT DB */ $user = User::where('employee_id', $request->username)->orWhere('username', $request->username)->first(); if($user !== null){ // $token = Auth::attempt($request->only('username', 'password')); $token = Auth::attempt([ "username" =>$user['username'], "password" => $request['password'] ]); /**IF NOT SUCCESSFULL PROMPT FOR ERROR MESSAGE */ if (!$token) { return response()->json([ 'message' => 'Unauthorized', ], 401); } $user = Auth::user(); return response()->json([ 'user' => $user, 'authorization' => [ 'token' => $token, 'type' => 'bearer', ] ]); } else {dd('check'); /**ELSE, CHECK IF USER EXISTS IN THE OLD DB */ $data = \App\Models\OldDB\User::where('employee_id', $request['username'])->orWhere('u_name', $request->username)->first(); /**IF RECORD EXISTS IN THE OLD DB */ if(!$data) { return response()->json([ 'message' => 'Unauthorized', ], 401); } /**CHECK IF CORRECT PASSWORD */ $valid = $data->u_password == MD5($request['password']); /** If not correct password, response with error */ if(!$valid){ return response()->json([ 'message' => 'Invalid username and/or password', ], 401); } /**If correct password begin the transaction */ DB::connection()->beginTransaction(); try { /**CREATE RECORD TO NEW DB*/ $user = User::create([ 'asa_id' => $request->username, 'name' => $data['u_fname'].' '.$data['u_lname'], 'first_name' => $data['u_fname'], 'last_name'=>$data['u_lname'], 'username'=> $data['u_name'], 'email' => $data['email'], 'email_verified_at' => $this->current_datetime, 'default_company_id' => $data['company'], 'default_dealership_id' => $data['dealer'], 'password' => Hash::make($request->password), 'created_at'=> $this->current_datetime, ]); /**Commit db changes */ DB::connection()->commit(); $credentials = $request->only('username', 'password'); /**ATTEMPT TO LOGIN */ $token = Auth::attempt($credentials); /**IF NOT SUCCESSFULL PROMPT FOR ERROR MESSAGE */ if (!$token) { return response()->json([ 'message' => 'Unauthorized', ], 401); } /**IF SUCCESSFUL RETURN DATA WITH TOKEN */ $user = Auth::user(); return response()->json([ 'user' => $user, 'authorization' => [ 'token' => $token, 'type' => 'bearer', ] ]); } catch (\Throwable $e) { /**if error */ /**rollback db changes */ DB::connection()->rollback(); return response()->json([ 'message' => 'Unable to process request. Please try again.', 'data' => $e->getMessage() ], 422); } } } public function register(Request $request) { $request->validate([ 'username' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6', ]); $user = User::create([ 'username' => $request->username, 'email' => $request->email, 'password' => Hash::make($request->password), ]); return response()->json([ 'message' => 'User created successfully', 'user' => $user ]); } public function logout() { Auth::logout(); return response()->json([ 'message' => 'Successfully logged out', ]); } public function refresh() { return response()->json([ 'user' => Auth::user(), 'authorization' => [ 'token' => Auth::refresh(), 'type' => 'bearer', ] ]); } public function autoLogin(int $id) { $user = User::find($id); $token = Auth::login($user); /**IF NOT SUCCESSFULL PROMPT FOR ERROR MESSAGE */ if (!$token) { return response()->json([ 'message' => 'Unauthorized', ], 401); } return response()->json([ 'user' => $user, 'authorization' => [ 'token' => $token, 'type' => 'bearer', ] ]); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings