express-jwt: аутентификация, если заголовок запроса имеет токен на предъявителя - PullRequest
0 голосов
/ 16 декабря 2018

Предположим, у меня есть следующие маршруты:

/admin, /employer, /jobs, /jobs-view, /companys, /company-list, /user-profile.

защищенмаршруты: /admin и /employer.

публичные маршруты: /jobs, /jobs-view, /companys, /company-list, /user-profile.

На защищенных маршрутах, еслиexpress-jwt истекает, токен обновления вызывается со стороны клиента

Однако в публичных маршрутах express-jwt вообще не проверяет.Несмотря на то, что я активен и просматриваю, а когда он истекает, система выходит из системы, только если я перехожу на защищенный маршрут , но не проверяет при переходе к общедоступному.

ТакМой вопрос здесь: есть ли способ установить, если в заголовке есть токен-носитель , тогда рассматривать открытый маршрут как защищенные маршруты и проверять срок действия jwt?

Потому что, если пользователь вошел в системузатем токен на предъявителя добавляется ко всем защищенным и общедоступным маршрутам.

auth.js:

let jwt = require("express-jwt");
let config = require("../config/jwt");

module.exports = jwt({
  secret: config.jwtSecret,
  requestProperty: "payload",
  getToken: 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;
  }
});

rout.js:

let auth = require("./auth");

app.use("/admin", auth, ...);
app.use("/employer", auth, ...);
app.use("/jobs", ...);
app.use("/jobs-view", ...);
app.use("/companys", ...);
app.use("/company-lis", ...);
app.use("/user-profile", ...);

Как реализовать токен обновления?

Я использовал ngx-auth .Он обнаруживает неудачный запрос из-за неудачной аутентификации.Для получения дополнительной информации проверьте здесь

...