Nuxt-Laravel-Sanctum User unauthenticated after login OR Error: "Route [login] not defined"
Nuxt-Laravel-Sanctum User unauthenticated after login OR Error: "Route [login] not defined"
我正在使用 Nuxt-Laravel-Sanctum。
api 和客户端在 localhost
上托管时,登录尝试成功并且用户响应正在返回。
但是,上传到服务器后 (api: api.repairtofix.com & client: admin-control.repairtofix.com) 登录似乎成功,但用户详细信息未返回。我收到 401 {message: "Unauthenticated."}
错误
即。它适用于 npm run dev
,但在 npm run generate
之后它不起作用
nuxt.config.js
axios: {
credentials: true
},
auth: {
strategies: {
'laravelSanctum': {
provider: 'laravel/sanctum',
url: 'https://api.repairtofix.com',
endpoints: {
login: {
url: '/api/login',
},
},
}
}
},
LoginController.php
public function __invoke(Request $request)
{
$credentials = $request->only('email', 'password');
if(!auth()->attempt($credentials)){
throw AuthenticationException();
}
}
api.php
use App\Http\Controllers\Auth\LoginController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('/login', LoginController::class);
cors.php
"Accept"=>"application/json",
'paths' => ['api/*', '/user', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
.env
SESSION_DOMAIN=.repairtofix.com
SANTUM_STATEFUL_DOMAINS=admin-control.repairtofix.com
Login.vue
data() {
return {
login: {
email: 'nmg.gta@gmail.com',
password: 'password'
}
}
},
methods: {
async userLogin() {
try {
let response = await this.$auth.loginWith('laravelSanctum', { data: this.login })
console.log(response)
} catch (err) {
console.log(err)
}
}
}
我找到了解决方案
在 sanctum.php 文件中我忘记添加我的域。添加后我得到了 /user
的回复
我正在使用 Nuxt-Laravel-Sanctum。
api 和客户端在 localhost
上托管时,登录尝试成功并且用户响应正在返回。
但是,上传到服务器后 (api: api.repairtofix.com & client: admin-control.repairtofix.com) 登录似乎成功,但用户详细信息未返回。我收到 401 {message: "Unauthenticated."}
即。它适用于 npm run dev
,但在 npm run generate
之后它不起作用
nuxt.config.js
axios: {
credentials: true
},
auth: {
strategies: {
'laravelSanctum': {
provider: 'laravel/sanctum',
url: 'https://api.repairtofix.com',
endpoints: {
login: {
url: '/api/login',
},
},
}
}
},
LoginController.php
public function __invoke(Request $request)
{
$credentials = $request->only('email', 'password');
if(!auth()->attempt($credentials)){
throw AuthenticationException();
}
}
api.php
use App\Http\Controllers\Auth\LoginController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('/login', LoginController::class);
cors.php
"Accept"=>"application/json",
'paths' => ['api/*', '/user', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
.env
SESSION_DOMAIN=.repairtofix.com
SANTUM_STATEFUL_DOMAINS=admin-control.repairtofix.com
Login.vue
data() {
return {
login: {
email: 'nmg.gta@gmail.com',
password: 'password'
}
}
},
methods: {
async userLogin() {
try {
let response = await this.$auth.loginWith('laravelSanctum', { data: this.login })
console.log(response)
} catch (err) {
console.log(err)
}
}
}
我找到了解决方案
在 sanctum.php 文件中我忘记添加我的域。添加后我得到了 /user
的回复