在服务器端,我有2个中间件——protect(登录了吗?)和restrictTo(检查用户的角色)。如果不允许,这些中间件会阻止用户或访客执行某些操作
exports.protect = catchAsync(async (req, res, next) => {
let token;
if (
req.headers.authorization && req.headers.authorization.startsWith("Bearer")
) {
token = req.headers.authorization.split(" ")[1];
}
if (!token) {
return next(new AppError("You are not signed in!", 401));
}
const decodedToken = await promisify(jwt.verify)(
token,
process.env.JWT_SECRET
);
const currentUser = await User.findById(decodedToken.id);
if (!currentUser) {
return next(new AppError("User with such token no longer exists"));
}
req.user = currentUser;
next();
});
exports.restrictTo = (...roles) => {
return (req, res, next) => {
if (!roles.includes(req.user.role)) {
return next(new AppError("No access", 403));
}
next();
};
};
但是如何在客户端保护路由呢?如果不允许我发布新消息,那么我应该被阻止进入 /newnote页面,这样我就看不到并填写表单。JWT令牌存储在带有http唯一标志的cookie中。因此我无法从Vue路由器访问令牌。将用户角色存储在Vuex中?那么如何在cookie和Vuex中同步令牌状态?如果我的令牌在服务器端被销毁,我仍然可以将其保存在Vuex中,直到我向受保护的endpoint发送请求。我应该为受保护的路由请求一个特殊的身份验证endpoint,以便使用befor每检查我当前的角色吗?
基本上,您应该添加两件事:
在Spa/移动设备中,只要您的后端得到适当的保护,您就不必太担心这一点。如果您的 authUser 逻辑正确,那么只有恶意用户才会尝试访问受保护区域,而普通用户将遵守规则,并且永远不会以当前权限访问他们不应该访问的页面(假设 UI 已正确连接......
要使用注释,必须创建一个包含getters和setters的类: 但这会导致有人试图通过调用以下命令来修改此值: 有没有一种方法可以创建注释类,而不使用setter和外部解析器/读取器类?
我正在用python(2.7)创建一个程序,我想保护它不受逆向工程的影响。
在< code>/users下,我有一些需要身份验证令牌的路由,还有一些不需要。为了实现这一点,我做了以下工作。 然后我按照以下方式安装这些路线。 当我向< code>/users发送POST时,它运行预期的路径,但是当< code>next()被调用时,< code > protected _ middleware 运行。这是因为它在标有“D”的行中找到了下一个< code>/users定义。
我的API应用程序中有此路由: 在postman中,我执行如下api调用: URL用户?令牌=令牌 但这会带来: 如何在postman中使用令牌正确执行api调用?
问题内容: 我试图使用TypeScript 在react-router 文档中创建一个描述。谁能帮我吗? react-router文档中的privateRoute: 以下是我的TypeScript版本(无法使用): 这是不对的。错误是:NodeInvocationException:inst.render不是函数TypeError:inst.render不是函数 问题答案: 该错误可能与打字和渲染
问题内容: 关键字授予对相同包和子类(http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html)中的类的访问权限。 现在,每个类都有一个超类(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html)。 因此,我得出结论,即使每个类都可以访问的方法。