Я работаю над заявлением, которое опирается на Laravel Sanctum для входа в систему. Однако после развертывания и запуска приложения на сервере я столкнулся с проблемой, в которой после успешного входа он не перенаправляет на страницу панели панели. Вместо этого он перенаправляет на страницу с ** кодом состояния 302 ** и остается на странице входа в систему. Кроме того, я получаю электронное письмо с уведомлением меня о том, что я успешно вошел в систему. < /P>
Примечание. Код работает на локальном сервере без каких -либо проблем.Route::group(['prefix' => 'admin/auth'], function () {
route::post('/login',[AuthController::class,'login'])->name('api_login');
Route::get('/logout', [AuthController::class, 'logout'])->name('api_logout');
});
< /code>
Веб -маршруты: < /p>
Route::middleware('auth:sanctum')->prefix('admin')->group(function (){
Route::get('/overview', [OverviewController::class, 'index'])->name('overview');
Route::get('/orders', [OrdersController::class, 'index'])->name('orders');
});
< /code>
AuthController -> Функция входа в систему: < /p>
public function login(LoginRequest $request)
{
try {
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$user = Auth::user();
if ($user->email_verified_at !== null) {
// Generate a Sanctum token for the user
$token = $user->createToken('auth-token')->plainTextToken;
$ipAdress = $request->ipinfo->ip;
//send login alert
Mail::to($request->email)->send(new LoginAlert([
"CustomerName" => showUserName(),
"IpAdress" => $ipAdress,
"Location" => $request->ipinfo->country_name . ', ' . $request->ipinfo->city,
"BrowserOs" => $request->header('User-Agent')
]));
return ApiResponse::sendResponse(200, 'Authorized successfully', ['token' => $token]);
}
return ApiResponse::sendResponse(401, 'Email has not been verified', null);
}
return ApiResponse::sendResponse(401, 'Unauthorized', null);
} catch (\Exception $th) {
return ApiResponse::sendResponse(401, $th->getMessage(), null);
}
}
< /code>
Функция входа в систему Axios < /p>
function login() {
document.getElementById("login-f").addEventListener("submit", function(event) {
event.preventDefault();
});
let crsf_token = document.querySelector('meta[name="CRSF"]').getAttribute("content");
axios.defaults.headers.common['X-CSRF-TOKEN'] = crsf_token;
const data = {
email: document.getElementById('email').value,
password: document.getElementById('password').value
};
axios
.post(`/api/admin/auth/login`, data, {
responseType: "json"
})
.then(function (response) {
if (response.status === 200 && response.data.msg === "Authorized successfully") {
setTimeout(function () {
window.location.href = "/admin/overview";
}, 2000);
}
}
})
.catch(function (error) {
// handle error
console.log(error);
});
}
< /code>
Я пытался изменить маршруты несколько раз, но без успеха! Я попытался прямого входа в систему, используя PHP, но столкнулся с той же проблемой! Я также попытался отправить информацию о заголовке: Принять: Приложение/JSON, тип контента: Application/json
Подробнее здесь: https://stackoverflow.com/questions/775 ... el-sanctum
Неожиданный 302 перенаправление после успеха входа в систему с использованием Sanctum Laravel Sanctum ⇐ Php
Кемеровские программисты php общаются здесь
1753552767
Anonymous
Я работаю над заявлением, которое опирается на Laravel Sanctum для входа в систему. Однако после развертывания и запуска приложения на сервере я столкнулся с проблемой, в которой после успешного входа он не перенаправляет на страницу панели панели. Вместо этого он перенаправляет на страницу с ** кодом состояния 302 ** и остается на странице входа в систему. Кроме того, я получаю электронное письмо с уведомлением меня о том, что я успешно вошел в систему. < /P>
Примечание. Код работает на локальном сервере без каких -либо проблем.Route::group(['prefix' => 'admin/auth'], function () {
route::post('/login',[AuthController::class,'login'])->name('api_login');
Route::get('/logout', [AuthController::class, 'logout'])->name('api_logout');
});
< /code>
Веб -маршруты: < /p>
Route::middleware('auth:sanctum')->prefix('admin')->group(function (){
Route::get('/overview', [OverviewController::class, 'index'])->name('overview');
Route::get('/orders', [OrdersController::class, 'index'])->name('orders');
});
< /code>
AuthController -> Функция входа в систему: < /p>
public function login(LoginRequest $request)
{
try {
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$user = Auth::user();
if ($user->email_verified_at !== null) {
// Generate a Sanctum token for the user
$token = $user->createToken('auth-token')->plainTextToken;
$ipAdress = $request->ipinfo->ip;
//send login alert
Mail::to($request->email)->send(new LoginAlert([
"CustomerName" => showUserName(),
"IpAdress" => $ipAdress,
"Location" => $request->ipinfo->country_name . ', ' . $request->ipinfo->city,
"BrowserOs" => $request->header('User-Agent')
]));
return ApiResponse::sendResponse(200, 'Authorized successfully', ['token' => $token]);
}
return ApiResponse::sendResponse(401, 'Email has not been verified', null);
}
return ApiResponse::sendResponse(401, 'Unauthorized', null);
} catch (\Exception $th) {
return ApiResponse::sendResponse(401, $th->getMessage(), null);
}
}
< /code>
Функция входа в систему Axios < /p>
function login() {
document.getElementById("login-f").addEventListener("submit", function(event) {
event.preventDefault();
});
let crsf_token = document.querySelector('meta[name="CRSF"]').getAttribute("content");
axios.defaults.headers.common['X-CSRF-TOKEN'] = crsf_token;
const data = {
email: document.getElementById('email').value,
password: document.getElementById('password').value
};
axios
.post(`/api/admin/auth/login`, data, {
responseType: "json"
})
.then(function (response) {
if (response.status === 200 && response.data.msg === "Authorized successfully") {
setTimeout(function () {
window.location.href = "/admin/overview";
}, 2000);
}
}
})
.catch(function (error) {
// handle error
console.log(error);
});
}
< /code>
Я пытался изменить маршруты несколько раз, но без успеха! Я попытался прямого входа в систему, используя PHP, но столкнулся с той же проблемой! Я также попытался отправить информацию о заголовке: Принять: Приложение/JSON, тип контента: Application/json
Подробнее здесь: [url]https://stackoverflow.com/questions/77510852/unexpected-302-redirect-after-success-login-using-laravel-sanctum[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия