Express PassportJs身份验证操作允许双方(来宾和登录用户)

Express PassportJs身份验证操作允许双方(来宾和登录用户),express,passport.js,bearer-token,Express,Passport.js,Bearer Token,我不熟悉expressJs和PassportJS,它们试图实现一个API,返回用户的所有基本细节,例如 { isUserLogin: true or false, allowedActions: [], applicationUrl: [], pageComponents: [], settings: [] } 因此,我面临的问题是,如果我实现passport.js,那么来宾用户将获得未经授权的权限。下面是我的代码 路由器.js authRoutes.g

我不熟悉expressJs和PassportJS,它们试图实现一个API,返回用户的所有基本细节,例如

{
    isUserLogin: true or false,
    allowedActions: [],
    applicationUrl: [],
    pageComponents: [],
    settings: []
}
因此,我面临的问题是,如果我实现passport.js,那么来宾用户将获得未经授权的权限。下面是我的代码

路由器.js

authRoutes.get('/init', passport.authenticate('bearer', { session: true }), authController.init);
controller.js

exports.init = (req, res) => {
    //here is my login to get params. Guest user not able to reach it.

    res.status(200).send(params);
};
我认为这必须是一个简单的路由器级别的设置,但无法获得适当的文件。我被困在这上面超过6天了。任何能引导我走向正确方向的建议都会很有帮助

提前谢谢。

这就是为什么

安装方式:
npm安装passport anonymous

然后使用策略

const-AnonymousStrategy=require('passport-anonymous')。策略;
passport.use(新匿名策略());
然后在路线上,传递身份验证策略数组,而不是字符串:

authrouts.get('/init',passport.authenticate(['bearer',anonymous'],{session:true}),authController.init);
在控制器上,您可以通过检查
req.user
对象来检查用户是否登录。请记住,必须将
匿名
放在数组中的
承载
之后

exports.init=(请求、回复)=>{
如果(请求用户){
控制台日志(“登录”);
}否则{
控制台日志(“来宾”);
}
资源状态(200)。发送(参数);
};