Как извлечь строку токена из токена на предъявителя? - PullRequest
0 голосов
/ 11 мая 2018

Например, у меня в заголовке есть подписка Bearer JWT. Какой элегантный способ извлечь сам токен? В основном что-нибудь после Bearer. Поскольку это может быть в других форматах, я не хочу предполагать, что это всегда начинается с Bearer. Я использую node-jsonwebtoken , и я не нашел такой метод.

Authorization: Bearer eyJhbGciOiJIUzI1NiIXVCJ9...TJVA95OrM7E20RMHrHDcEfxjoYZgeFONFh7HgQ

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

В целях безопасности вы должны убедиться, что заголовок авторизации имеет ожидаемое содержимое. Вы просто не должны принимать заголовок, который не начинается с Bearer, если вы ожидаете его («Носитель» - это рекомендация в RFC, это не обязательно) ».

if (authHeader.startsWith("Bearer ")){
     token = authHeader.substring(7, authHeader.length);
} else {
   //Error
}
0 голосов
/ 04 августа 2019

Я написал функцию для извлечения токена из заголовка запроса или запроса.Я публикую это здесь.Надеюсь, это кому-нибудь поможет.

function extractToken (req) {
    if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
        return req.headers.authorization.split(' ')[1];
    } else if (req.query && req.query.token) {
        return req.query.token;
    }
    return null;
}
0 голосов
/ 11 мая 2018

Вы можете разделить пробелом, используя

TokenArray = jwttoken.split(" ");

будет храниться в виде массива, где 2-й индекс (1 в качестве первого индекса равен 0) TokenArray[1] будет токеном и будет использовать

Jwt.decode(TokenArray[1])

для декодирования токена JWT - это стандарт токенов, который вы можете использовать во многих из них, и один из наиболее часто используемых случаев - для авторизации, и это также может быть сделано разными способами, но предпочтительным стандартным способом является отправка его в заголовке авторизации канала-носителя. Вы можете использовать refresh_token вместо bearer token, но вам нужно где-то хранить токен, что каким-то образом снизит эффективность термина stateless токен. Таким образом, подход на предъявителя полностью лишен состояния и предпочтительный подход

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