Несмотря на то, что отправка данных заголовка авторизации не хранится в БД, то есть происходит несанкционированный доступ - PullRequest
0 голосов
/ 28 апреля 2019

Я в основном отправляю свои данные JSON с двумя заголовками.Когда я смотрю детали заголовка через инструменты разработки Chrome, он показывает, что заголовки отправлены.Но он в консоли отлавливает ошибку, сообщая, что код ошибки 401 не авторизован.

После входа в систему я назначаю полученное значение токена локальному хранилищу.В локальном хранилище также могут быть найдены и сохранены значения.Поскольку я разрабатываю это приложение с использованием технологий стека MERN, я установил значения заголовков по умолчанию в файле index.js, как показано ниже:

let token=localStorage.getItem('token');

if(token){
    axios.defaults.headers.common['Content-Type']='application/x-www-form-urlencoded';
    let auth_head='JWT '+localStorage.getItem('token');
    axios.defaults.headers.common['Authorization']=auth_head;
    console.log(auth_head);
}

После ошибки я вижу вкладку Сеть разработки Chrome.Там вставка книги (данных) выделена красным.Поэтому я щелкаю по нему и просматриваю значения его заголовков.

Request URL: http://localhost:4000/book/
Request Method: POST
Status Code: 401 Unauthorized
Remote Address: [::1]:4000
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 33
Content-Type: application/json; charset=utf-8
Date: Sun, 28 Apr 2019 10:02:53 GMT
ETag: W/"21-wNNi+vjO8gt//ITmWfqLf4aE+Ic"
X-Powered-By: Express
Provisional headers are shown
Accept: application/json, text/plain, 
Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJzYXNoaWtzdSIsImlhdCI6MTU1NjQ0NTczMiwiZXhwIjoxNTU2NTMyMTMyfQ.3r2rQNA10bvFOEvI9vyED14rwFHg9oA633cvm4hp7x8
Content-Type: application/json;charset=UTF-8
Origin: http://localhost:3000
Referer: http://localhost:3000/insert_book
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36

Просмотр также подтвердил, что мой токен поставляется с данными.Но это говорит несанкционированный.Кстати, в моем пользовательском контроллере методы авторизации выглядят так:

export const authorization = (req, res, next) => {
    if (req.user) {
        next();
    } else {
        return res.status(401).json({ message: 'Unauthorized User !' })
    }
};

В файле server.js я настраиваю настройку JWT следующим образом:

//JWT setup
app.use((req, res, next) => {
    if (req.headers && req.headers.authorization && req.headers.authorization.split(' ')[0] === 'JWT') {
        jsonwebtoken.verify(req.headers.authorization.split(''), [1], 'RESTFULAPIs', (err, decode) => {
            if (err) req.user = undefined;
            req.user = decode;
            //console.log(req.user );
            //console.log(decode);
            next();
        });
    } else {
        req.user = undefined;
        next();
    }
});

Я не могу понять, гдеошибка в моем кодеПожалуйста, помогите мне, ребята.

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