MIF_E31210515/BackEnd/laravel-pos-ecommerce-backend/app/Http/Controllers/Api/AuthController.php

86 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class AuthController extends Controller
{
public function register(Request $request)
{
$validated = $request->validate([
'name' => 'required|max:100',
'email' => 'required|unique:users|max:100',
'phone' => 'required|max:25',
'password' => 'required'
]);
$validated['password'] = Hash::make($validated['password']);
$user = User::create($validated);
$token = $user->createToken('auth_token')->plainTextToken;
return response()->json([
'access_token' => $token,
'user' => $user
], 201);
}
public function login(Request $request)
{
$validated = $request->validate([
'email' => 'required',
'password' => 'required',
]);
$user = User::where('email', $validated['email'])->first();
if (!$user) {
return response()->json([
'message' => 'user not found',
], 401);
}
if (!Hash::check($validated['password'], $user->password)) {
return response()->json([
'message' => 'invalid password'
], 401);
}
$token = $user->createToken('auth_token')->plainTextToken;
return response()->json([
'access_token' => $token,
'user' => $user,
], 200);
}
public function logout(Request $request)
{
$request->user()->currentAccessToken()->delete();
return response()->json([
'message' => 'Logout Success',
], 200);
}
public function updateFcmId(Request $request)
{
// Validate the request...
$validated = $request->validate([
'fcm_id' => 'required',
]);
$user = $request->user();
$user->fcm_id = $validated['fcm_id'];
$user->save();
return response()->json([
'message' => 'FCM ID updated',
], 200);
}
}