this repo has no description
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}