#Laravel 11 and facing a problem with Laravel Sanctum I am not using any JS framework or SPA
7 messages · Page 1 of 1 (latest)
could you please show some sample code? your question isn't very clear
Sure just a moment
Below are my routes:
app\routes\web.php
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Artisan;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\DashboardController;
use Illuminate\Http\Request;
Route::get('/clear', function () {
$routeclear = Artisan::call('route:clear');
echo "Route cleared<br>";
$cacheclear = Artisan::call('cache:clear');
echo "Cache cleared<br>";
$eventclear = Artisan::call('event:clear');
echo "Event cleared<br>";
$configclear = Artisan::call('config:clear');
echo "Config cleared<br>";
$viewclear = Artisan::call('view:clear');
echo "View cleared<br>";
$clearcompiled = Artisan::call('clear-compiled');
echo "Compiled cleared<br>";
$configcache = Artisan::call('config:cache');
echo "Config cached<br>";
$routecache = Artisan::call('route:cache');
echo "Route cached<br>";
$viewcache = Artisan::call('view:cache');
echo "View cached<br>";
$optimize = Artisan::call('optimize');
echo "Optimized<br>";
});
Route::get('/login', [AuthController::class, 'login'])->name('login');
Route::get('/', [DashboardController::class, 'dashboard']);
Route::get('/user', function (Request $request) {
return [
'status' => true,
'user' => $request->user()
];
});
Route::middleware('auth:sanctum')->group(function () {
Route::get('/', [DashboardController::class, 'dashboard']);
});
app\routes\api.php
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\API\AuthController;
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->group(function () {
Route::get('/user', function (Request $request) {
return $request->user();
});
Route::post('/logout', [AuthController::class, 'logout']);
});
Controllers:
app\app\Http\Controllers\API\AuthController.php
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class AuthController extends Controller
{
public function login(Request $request)
{
$validateUser = Validator::make(
$request->all(),
[
'email' => 'required|email',
'password' => 'required'
]
);
if ($validateUser->fails()) {
return response()->json([
'status' => false,
'fail_type' => 1,
'message' => 'validation error',
'errors' => $validateUser->errors()
], 200);
}
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
$token = $user->createToken("API TOKEN")->plainTextToken;
return response()->json([
'status' => true,
'message' => 'Login successful',
'token' => $token,
]);
}
return response()->json([
'status' => false,
'message' => 'Invalid credentials',
], 401);
}
public function user(Request $request)
{
return response()->json([
'status' => true,
'user' => $request->user()
]);
}
public function logout(Request $request)
{
$request->user()->tokens->each(function ($token) {
$token->delete();
});
return response()->json([
'status' => true,
'message' => 'Logged out successfully',
]);
}
}
app\app\Http\Controllers\AuthController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function login(Request $request)
{
$data = [];
return view('pages.login', $data);
}
}
app\app\Http\Controllers\DashboardController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
public function dashboard(Request $request)
{
$data = [];
return view('pages.dashboard', $data);
}
}
Does this enough?