Я получаю 401 несанкционированный при доступе к защищенным маршрутам, используя HTTP только cookie в Laravel с AxiosPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Я получаю 401 несанкционированный при доступе к защищенным маршрутам, используя HTTP только cookie в Laravel с Axios

Сообщение Anonymous »

Я работаю над приложением Laravel с аутентификацией JWT, и я пытаюсь использовать файлы cookie только для HTTP для аутентификации. Несмотря на правильно установить файл cookie на входе в систему, я все еще получаю 401 несанкционированную ошибку при доступе к защищенным маршрутам с использованием Axios. Вот моя настройка: < /p>

Код: Выделить всё

$token = JWTAuth::claims($claims)->fromUser($user);
$cookie = Cookie::make('auth_token', $token, 60, null, null, false, true, false, 'Strict');

if ($user->status == 'active' && $user->is_verified == 1) {
return response()->json([
'message' => 'User logged in successfully',
'token' => $token,
'user' => UserService::data($user->id)
], 200)->withCookie($cookie)
->header('Access-Control-Allow-Credentials', 'true')
->header('Access-Control-Allow-Origin', 'http://localhost:5173')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
}

< /code>
конфигурация Axios < /p>
public async apiRequest(endpoints: { [key: string]: Record }, method: string = 'POST'): Promise {
axios.defaults.withCredentials = true;
const axiosInstance: AxiosInstance = axios.create({
baseURL: this.url,
withCredentials: true,
headers: {
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
timeout: 40000,
});

const payload: { [key: string]: string } = {};

for (const [endpoint, data] of Object.entries(endpoints)) {
const pre= `__${endpoint}`;
payload[pre] = encryptData(data);
}

try {
const response: AxiosResponse = await axiosInstance.request({
url: '/request.json',
method: method,
data: JSON.stringify(payload)
});

return response;

} catch (error: any) {
if (axios.isAxiosError(error) && error.response?.status === 401) {
this.logout();
}
console.error('Error making request:', error);
throw error;
}
}
< /code>
Мое промежуточное программное обеспечение: < /p>
Route::group(['middleware' => 'api'], function ($router) {
Route::match(['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], 'action.json', [RequestController::class, 'handle']);
Route::post('/request.json', [ApiController::class, 'handle']);
});

public function __construct()
{
$this->middleware('auth:api', ['except' => ['login', 'signup', 'password/reset', 'reset', 'test', 'getUser']]);
}
Даже при этих настройках я все еще получаю 401 несанкционированную ошибку при попытке получить доступ к защищенным маршрутам. Испытательный:

Убедитесь, что поддержка_кредонов устанавливается на True и правильное происхождение. /> < /ul>
Я хотел иметь возможность делать вызовы API на сервер без необходимости сохранять токен на клиенте. < /p>

Подробнее здесь: https://stackoverflow.com/questions/787 ... p-only-coo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»