如何在环回中验证/授权快速路由

时间:2016-08-29 02:19:30

标签: node.js authentication express authorization loopbackjs

我刚为用户身份验证/授权创建了一个环回应用和扩展User模型。

我正在尝试检查用户当前是否已从我的快速路由登录,因此如果用户未登录,我可以将用户重定向到/login

到目前为止,似乎loopback仅验证/授权公开的模型方法,如/user/update。我无法找到关于如何获得环回以验证/授权我定义的快速路线的任何内容。

提前致谢

2 个答案:

答案 0 :(得分:1)

这就是问题,我不是很擅长环回,但我对Expressjs知之甚少。

在express中,如果你想做auth,你可以使用自己的中间件,并在其他路由处理请求之前使用它。

您可能希望将快速会话视为登录状态存储。

登录时:

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')
  }
}

https://github.com/expressjs/session

答案 1 :(得分:0)

为了在LoopBack应用程序中启用Express路由的身份验证和授权,您需要执行以下操作:

  1. 初始化Loopback Token中间件以使用cookie
  2. 执行登录后设置签名的access_token cookie
  3. 添加中间件以存储请求上下文(以启用下面的步骤4 - 6)
  4. 添加中间件以识别请求用户并在请求上下文中存储用户信息
  5. 添加中间件以启用对所选路由的登录强制执行
  6. 根据需要向Express路由添加登录强制中间件调用
  7. 如果这看起来有点可怕,恐怕不是因为有人撰写了一篇很棒的博客文章并提供了上述所有中间件的示例代码:

    Tokens, Sessions and Users, oh my!

    注意事项:

    • 如果您希望会话保持不变,请确保将LoopBack的AccessToken模型配置为使用内存以外的数据存储。有关详细信息,请参阅此处:Allow loopback application to use previous access token

    • 在博客文章中实现的请求上下文中间件不能用作持久会话存储(即只有令牌持久存在),其余的是短暂的。