this repo has no description
at master 2.3 kB view raw
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Models\User; 6use Auth; 7use Illuminate\Http\Request; 8 9class AuthController extends Controller 10{ 11 public function login(Request $request) 12 { 13 $credentials = $request->validate([ 14 'email_or_pin' => ['required'], 15 'mode' => ['required'], 16 'password' => ['required'], 17 ]); 18 19 20 if ( 21 Auth::attempt([ 22 $credentials['mode'] => $credentials['email_or_pin'], 23 'password' => $credentials['password'] 24 ]) 25 ) { 26 $request->session()->regenerate(); 27 28 $token = $request->user()->createToken("login"); 29 30 return response()->json([ 31 "message" => "Login successfull", 32 "token" => $token->plainTextToken, 33 ]); 34 } 35 36 return response()->json([ 37 "message" => "The provided credentials are incorrect.", 38 ], 401); 39 } 40 41 public function signup(Request $request) 42 { 43 $validated = $request->validate([ 44 'firstname' => ['required', 'string'], 45 'lastname' => ['required', 'string'], 46 'pin' => ['required', 'string', 'size:10'], 47 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 48 'password' => ['required', 'string', 'min:8'], 49 ]); 50 51 $user = User::create([ 52 'firstname' => $validated['firstname'], 53 'lastname' => $validated['lastname'], 54 'pin' => $validated['pin'], 55 'email' => $validated['email'], 56 'password' => $validated['password'], 57 ]); 58 59 $token = $user->createToken("signup"); 60 61 $request->session()->regenerate(); 62 63 return response()->json([ 64 "message" => "Account created", 65 "token" => $token->plainTextToken, 66 ]); 67 } 68 69 public function logout(Request $request) 70 { 71 $request->session()->invalidate(); 72 73 return response()->json([ 74 "message" => "Successfully logged out", 75 ], 200); 76 } 77 78 public function validate(Request $request) 79 { 80 return response()->json([ 81 "message" => "Session is valid", 82 "user" => Auth::user(), 83 ]); 84 } 85}