您好,我正在使用平均堆栈和jwt登录,我想限制一些数据只有userRole'admin'这是我的user.js
const userSchema = new Schema({
email: {type : String, required : true , unique : true},
password: String,
role: {type : String, enum: ["reader", "admin"]},
});
这就是我验证jwt令牌的方法
function verifyToken(req, res, next) {
if(!req.headers.authorization) {
return res.status(401).send('Unauthorized request')
}
let token = req.headers.authorization.split(' ')[1]
if(token === 'null') {
return res.status(401).send('Unauthorized request')
}
let payload = jwt.verify(token, 'secretKey')
if(!payload) {
return res.status(401).send('Unauthorized request')
}
req.userId = payload.subject
next()
}
这是我希望使用verifyToken函数仅为'admin'角色限制的数据
router.get('/special', verifyToken, (req,res) => {
let specialEvents = [//data...]
}
我的问题是,我如何访问当前登录的用户信息,并仅使管理员可读的/特殊的
嗨,您需要在代码中添加一些内容。(因为您需要提供更多细节)。
// Generate an access token
const accessToken = jwt.sign({ username: user.username, role: user.role }, accessTokenSecret);
const token = authHeader.split(' ')[1];
jwt.verify(token, accessTokenSecret, (err, user) => {
if (err) {
return res.sendStatus(403);
}
res.locals.loggedUser = user;
return next();
});
用户已作为用户角色登录,我想以员工身份登录而不提交登录表单,但身份验证失败, 请查一下密码,帮帮我 @requestmapping(value=“/home”)public ModelAndView userHomePage(Model Model,HttpServletRequest request,HttpServletResponse response,Principal Principal
如何获取当前登录用户的型号?例如,如果系统职员和管理员中有两种类型的用户?我如何知道用户属于哪个模型?
sp_get_current_userid() 功能: 获取当前登录用户ID 参数: 无 返回: int,当前登录的用户id,如果未登录返回0
接口说明 获取当前登录用户的ID 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /usercenter/api/userinfo/v1.0.0/getLoginUserId 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 参数
接口说明 获取当前登录用户的ID 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /usercenter/api/userinfo/v1.0
我已经为当前用户从数据库加载了角色。并且我可以用JSP中的Spring Security表达式访问用户角色,可以用HasRole隐藏未经授权的选项和URL。现在,我希望将它放在servlet中,并将其显示在日志中(或存储在用户对象会话中)。怎样才能实现呢?