Your_Uncle_Ostap
@Your_Uncle_Ostap
Учусь премудростям

Правильная авторизация?

Всем привет. ПРошу помощи. Делаю запрос на авторизацию и получения токена на сервер https://fan-foto-ml753mfuuq-uc.a.run.app/ (метод login). Запрос делаю через Фетч.
Вначале получал "Access to fetch at 'https://fan-foto-ml753mfuuq-uc.a.run.app/api/v1/lo...' from origin 'localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.".
Установил приложение CORS для Хрома и теперь получаю "Unhandled Rejection (Error): Not Fetch /api/v1/login/access-token , recived 405"

Код:

_apiBase = 'https://fan-foto-ml753mfuuq-uc.a.run.app';
    proxyurl = "https://cors-anywhere.herokuapp.com/";

    getResource = async (url) => {
        const res = await fetch(`${this._apiBase}${url}`);
        if (!res.ok) {
            throw new Error(`Not Fetch ${url} , recived ${res.status}`)
        }
        const body = await res.json();
        return body;
    };

    getToken = async (username, password) => {
        let user = {
            username,
            password
        };
        const token = await this.getResource(`/api/v1/login/access-token`, {
                // method: 'POST',
                method: 'OPTIONS',
                headers: {
                    'Content-Type': 'application/json',
                    'Authorization': 'Bearer TOKEN',
                    // 'Access-Control-Allow-Origin': 'http://127.0.0.1:3000',
                    // 'Access-Control-Allow-Methods': 'GET, POST, HEAD, OPTIONS',
                    // 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
                    // 'Access-Control-Allow-Credentials': true

                },
                // credentials: true,
                // origin: 'http://127.0.0.1:3000',
                // accept: 'application/json',
                body: JSON.stringify(user)
            }
        );
        return token;

    };


Я уже перепробовал все что знаю. ПРОшу помочь. Спасибо
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 5
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
так у тебя getResource = async (url) один аргумент принимает, а ты передаешь два, и второй конечно не прокидывается
this.getResource(`/api/v1/login/access-token`, {
Ответ написан
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
405 ошибка - потому, что используете метод OPTIONS, а нужно скорее всего POST.
Ответ написан
Попробуйте в headers указать одну из настроек: cors, no-cors, same-origin или navigate.

https://developer.mozilla.org/ru/docs/Web/API/Requ...
Ответ написан
Комментировать
@VegasChickiChicki
Работаем локально - включаем.
Перестаем работать - выключаем(с этим плагином перестают работать некоторые сайты).
На сервере ошибка связнная с CORS'ами исчезнет.

По крайней мере так было у меня.
Ответ написан
@mr_Dick
mode: 'no-cors', credentials: 'include', . Попробуйте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы