پروژه من لاراول و vue cli هست و از laravel sanctum استفاده میکنم (جدا از هم)
مشکلی که دارم اینه که عملیات لاگین و رجیستر به درستی انجام میشه بعد از لاگین اطلاعات یوزر برمیگرده و بعد از رجیستر کاربر وارد دیتابیس میشه ولی موقعی که روت auth/user را فراخانی میکنم تا اطلاعات user لاگین شده را بگیرم unauthenticated میده؟
به نظرتون برای حل مشکل باید چیکار کنم؟
فایل sanctum.php
'stateful' => explode(',', env(
'SANCTUM_STATEFUL_DOMAINS',
'localhost,src.test:8080,localhost:3000,127.0.0.1,127.0.0.1:8000,::1,'.parse_url(env('APP_URL'), PHP_URL_HOST)
))
فایل cors.
'paths' => ['api/*','login','logout','sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true
فایل AuthController
public function user()
{
$data = [
Auth::user(),
'notifications' => Auth::user()->unreadNotifications(),
'message' => 'successful'
];
return response()->json($data , Response::HTTP_OK);
}
public function login(Request $request)
{
// Validate Form Inputs
$request->validate([
'email' => ['required', 'email'],
'password' => ['required'],
]);
if (Auth::attempt($request->only(['email', 'password']))) {
return response()->json(Auth::user(), Response::HTTP_OK);
}
throw ValidationException::withMessages([
'email' => 'incorrect credentials.'
]);
}
فایل روت
Route::middleware(['auth:sanctum'])->group(function () {
Route::get('/users', 'UserController@index');
});
فایل axios.js
Axios.defaults.withCredentials = true;
فایل axios.js
export let loginRequest = async (formData) => {
if (!await checkAuth()) {
let loginReq
await axios.get(${baseUrl}csrf-cookie).then(res => {
loginReq = Axios.post(auth/login, formData)
})
return loginReq
}
};
بعد از لاگین اطلاعات کاربر توی تب نتورک نمایش داده میشه
وقتی اطلاعات نام کاربری و رمز میگیری و سمت url اطلاعات رو میفرستی در برگشت شما یکسری اطلاعات از کاربرتون داری مثه توکن این توکن رو باید توی لوکال استورج و .. ذخیره کنی برای درخواست های بعدی تون.
if (!await checkAuth()) {
این تابع نمیدونم داری چی رو چک میکنی و احتمال میدم توی این تابع باید حتما توکنی که ذخیره کردی رو با یک درخواست http به سمت سرور احراز هویت رو بررسی کنی
و جاهای که نیاز هست مثه auth/user که اطلاعات کاربر رو بگیری => کافیه توی هدر یا همراه درخواستت توکن رو هم بفرستی
axiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟