如何validation/授权环回中的快速路由
我刚刚创build了一个回送应用程序,并为用户authentication/授权扩展了User
模型。
我试图检查用户是否当前login或不从我的快速路由,所以我可以redirect用户/login
如果用户没有login。
到目前为止,似乎回环只validation/授权暴露的模型方法,如/user/update
。 我无法find任何关于如何获得回送authentication/授权我定义的快速路线。
提前致谢
这是事情,我不是很擅长回环,但我知道一点关于Expressjs。
明确地说,如果你想做auth,你可以使用你自己的中间件,并在其他路由处理请求之前使用它。
您可能想要将快速会话视为login状态存储。
login时:
route.post('/login',function(req,res,next){ //login here req.session.user = user })
而你自己的中间件:
function auth(req,res,next){ if(!req.session.user){ res.redirect('/login') } }
为了在LoopBack应用程序中启用Express路由的身份validation和授权,您需要执行以下操作:
- 初始化环回令牌中间件以使用cookie
- 执行login后,设置已签名的access_token cookie
- 添加中间件来存储请求上下文(启用下面的步骤4 – 6)
- 添加中间件以识别请求用户并将用户信息存储在请求上下文中
- 添加中间件以启用所选路由上的login
- 根据需要将login执行中间件调用添加到Express路由
如果这看起来有点恐怖,恐怕不是因为有人写了一篇很棒的博客文章,并提供了所有上述中间件的示例代码:
令牌,会话和用户,哦,我的!
注意事项:
-
如果您希望会话持续存在,请确保将LoopBack的AccessToken模型configuration为使用内存以外的数据存储。 有关更多信息,请参阅此处: 允许回送应用程序使用先前的访问令牌
-
在博客文章中实现的请求上下文中间件不能作为永久性会话存储(即只有令牌存在),其余的是短暂的。
- “错误:非法参数:string,未定义”,并在节点JS中停止服务器
- PassportJS events.js:160 //未处理的错误连接超时
- 我们如何在Web应用程序中进行身份validation?
- 在路由处理中绕过authentication
- 请求反馈:使用客户端复制(pouchdb)为多个用户/帐户设置Couchdb
- 将非用户字段添加到有效内容以用于JWT令牌
- 如何识别Socket.IO(通过socketio-auth)成功的身份validation?
- nodejs HTTP摘要authentication不起作用
- Node.js NTLM HTTP Authentication,如何处理这3种types