我正在构建一个Angular Universal MEAN (MongoDB,Express,Angular,Node)应用程序,但我正在寻找正确的方法来处理安全性。我知道你不能在Angular Universal中使用localStorage。ngx-cookie-service是处理安全性、授权等的完整方式吗?会实现像这样的东西...
https://www.npmjs.com/package/ngx-cookie-service...or这个。
https://itnext.io/angular-8-how-to-use-cookies-14ab3f2e93fccookies会取代使用令牌吗?
它会在后端替换app.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/post”,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 Univeral应用程序的代码示例,演示了使用cookie的正确方法,请分享。或者,如果这是一个复杂的解释,也许是一篇带有粗略解释的文章。谢谢您抽时间见我。非常感谢。
K
发布于 2020-02-14 19:28:58
ngx-cookies没有提供一种“完整”的方式来执行身份验证,只提供了一种在使用angular universal时设置/获取cookies的简单方法。
在后端,安装并使用cookieParser
const cookieParser = require('cookie-parser');
app.use(cookieParser());然后,不是从自定义Authorization头中获取jwt,而是从cookie中获取它
const token = req.cookies.authorization.split(" ")[1];https://stackoverflow.com/questions/60210759
复制相似问题