This repository was archived by the owner on Jul 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 27
This repository was archived by the owner on Jul 16, 2021. It is now read-only.
Laravel Sanctum authenticates without csrf mismatch! Is that okay with this settings? #2321
Copy link
Copy link
Open
Description
Here is the simple form which doesn't have any csrf tokens to send to the server:
<!DOCTYPE html>
<html>
<head>
<title>Test API authentication</title>
</head>
<body>
<form method="post" action="http://localhost:8000/api/login">
<input name="email">
<input name="password">
<button>Submit</button>
</form>
</body>
</html>And here - the login method:
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
// Authentication passed...
$authuser = auth()->user();
return response()->json(['message' => 'Login successful'], 200);
} else {
return response()->json(['message' => 'Invalid email or password'], 401);
}
}This is the Kernel.php:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
EnsureFrontendRequestsAreStateful::class,
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];And here is the cors.php:
<?php
return [
/*
|--------------------------------------------------------------------------
| Cross-Origin Resource Sharing (CORS) Configuration
|--------------------------------------------------------------------------
|
| Here you may configure your settings for cross-origin resource sharing
| or "CORS". This determines what cross-origin operations may execute
| in web browsers. You are free to adjust these settings as needed.
|
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
*/
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
];Same thing with Postman - it just gets authenticated without requesting csrf cookies or without any errors!
Metadata
Metadata
Assignees
Labels
No labels