Существует ли другая логика авторизации при доступе к бэкэнду через мобильный (в частности, iphone) браузер и настольный (chrome) браузер? - PullRequest
0 голосов
/ 27 мая 2019

Когда я пытаюсь получить доступ к определенной странице, мой бэкэнд определяет, разрешено ли авторизованному пользователю видеть страницу или нет.Используемый мной бэкэнд - это django / django-rest, а для внешнего интерфейса я использую реагировать (axios для http-вызовов).

Это пример моего вызова API.Я хочу получить инвентарь для пользователя.

        axios.get(this.url, this.config)
            .then(res => {
                this.setState({
                    products: res.data
                })
                if (res.data.length > 0) {
                    if (!res.data[0].is_owner) {
                        this.setState({
                            inventory_owner: res.data[0].user_name,
                            is_owner: res.data[0].is_owner
                        })
                    }
                }
            })
            .catch(res => {
                console.log("config2 what happened",this.config)
            })

this.url - это api url, а this.config - это:

    config = {
        headers: {
            'Authorization': 'Token ' + localStorage.getItem('token')
        }
    }

Я знаю, что localStorage - плохая практика, но я просто хотел, чтобы сначала она заработала.Проблема, с которой я сталкиваюсь, заключается в том, что когда я делаю этот вызов в своем браузере, все работает нормально.Когда я примеряю свой iphone и использую браузер Chrome, я получаю это в журнале: Unauthorized: /api/inventory/f11e72d5-ae28-406f-8cca-a4260a9e65a8/.Я считаю, что это сообщение автоматически генерируется django-rest или django-rest-auth, так что это означает, что оно еще даже не начинает мою логику ViewSet (есть немного больше правил для того, разрешено ли человеку видеть инвентарь, но этокод еще даже не выполняется).Что может быть причиной такого другого поведения?Скорее всего, это связано с токеном, но я действительно могу убедиться, что токен присутствует в localStorage, так как я могу войти в систему без проблем в любом браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...