Предоставляет ли ngx-cook ie -сервис полный способ аутентификации для Angular универсальных приложений? - PullRequest
1 голос
/ 13 февраля 2020

Я создаю приложение Angular Universal MEAN (MongoDB, Express, Angular, Node), но я ищу правильный способ обеспечения безопасности. Я знаю, что вы не можете использовать localStorage с Angular Universal. Является ли ngx-cook ie -service полным способом обеспечения безопасности, авторизации и т. Д. c.? Будет ли реализовано что-то вроде этого ...

https://www.npmjs.com/package/ngx-cookie-service

... или это ...

https://itnext.io/angular-8-how-to-use-cookies-14ab3f2e93fc

Заменить ли cookie использование токенов?

Заменит ли код например, в приложении. js на сервере:

    app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept, Authorization"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, POST, PATCH, PUT, DELETE, OPTIONS"
  );
  next();
});

app.use ("/ api / posts", postsRoutes);

И это на сервере ...

const jwt = require("jsonwebtoken");

module.exports = (req, res, next) => {
  try {
    const token = req.headers.authorization.split(" ")[1];
    const decodedToken = jwt.verify(token, process.env.JWT_KEY);
    req.userData = { email: decodedToken.email, userId: decodedToken.userId, isAdmin: decodedToken.isAdmin };
    next();
  } catch (error) {
    res.status(401).json({ message: "You are not authenticated!" });
  }
};  

Если у вас есть ссылка на хороший пример кода для простого стека MEAN Angular Универсальное приложение, демонстрирующее правильный способ использования файлов cookie, поделитесь, пожалуйста. Или, может быть, статья с широкими штрихами объяснил, если это сложное объяснение. Спасибо за ваше время. Это очень ценится.

K

1 Ответ

0 голосов
/ 14 февраля 2020

ngx-cookies не предоставляет «полный» способ выполнения аутентификации, просто простой способ установки / получения файлов cookie при использовании angular универсальный.

В своем бэкэнде установите и используйте cookieParser

const cookieParser = require('cookie-parser');
app.use(cookieParser());

Тогда, вместо того, чтобы получить свой jwt из пользовательского заголовка авторизации, получите его от повара ie

const token = req.cookies.authorization.split(" ")[1];
...