Nodejs Express JWT, как обрабатывать и отправлять токен с веб-клиента / телефона (jsonwebtoken) - PullRequest
0 голосов
/ 29 января 2019

Я использую NodeJs с приложением Express для разработки веб-сайтов для браузеров и мобильных телефонов.Я использую JWT, потому что он, кажется, является стандартом, и я прочитал, что сессии не работают в телефонах (без браузера).У меня есть этот код в бэкэнде, настроенном с использованием «jsonwebtoken»:

'use strict';

const jwt = require('jsonwebtoken');
const path = require('path');
const fs = require('fs');
const privateKEY  = fs.readFileSync(path.join(__dirname, 'private.key'), 'utf8');
const publicKEY  = fs.readFileSync(path.join(__dirname, 'public.key'), 'utf8');

module.exports = {

    sign: (payload) => {
        var signOptions = {
            expiresIn: process.env.TOKEN_EXPIRE_TIME,
            algorithm: "RS256"
        };
        return jwt.sign(payload, privateKEY, signOptions);
    },

    verify: (token) => {
        var verifyOptions = {
            expiresIn: process.env.TOKEN_EXPIRE_TIME,
            algorithm: ["RS256"]
        };
        try {
            return jwt.verify(token, publicKEY, verifyOptions);
        } catch (err) {
            return false;
        }
    },

    decode: (token) => {
        return jwt.decode(token, {
            complete: true
        });
    }

};

Но я не знаю, как реализовать внешний интерфейс.Мне нужно знать, как хранить токен для обоих устройств (localStorage? SessionStorage? Куки? Другие?) И как можно сделать ссылки (тег href в html), отправляющие токен из этого метода хранения.

1 Ответ

0 голосов
/ 29 января 2019

Тип хранилища для токена JWT во внешнем интерфейсе полностью зависит от требований ваших приложений и того, как вы хотите обрабатывать сеанс входа / выхода пользователя из системы.

См. Эту статью в JWT использует, хлопайте, если вам нравится

Если вам не ясно это, вы можете использовать localStorage, так как данные, хранящиеся в нем, остаются событиями после закрытия браузера - еслиэто не беспокоит ваше требование.

Для отправки токена по ссылке - есть две вещи, которые вы можете сделать -

  1. Создать ссылку динамически и добавить токен в качестве параметра запроса к вашемуссылка
  2. Или вы можете создать событие onClick, которое извлекает токен из хранилища и отправляет запрос на ваш сервер

Надеюсь, это поможет.

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