angularjs – 如何使用PassportJS保护API端点?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何使用PassportJS保护API端点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序使用Express和AngularJS.我正在使用express来处理通过静态的角度代码的基本web搜索.角度代码使用命中由express托管的API端点的服务.我只希望在用户通过身份验证后可以访问API端点.我怎样才能通过PassportJS实现这一目标?
我在 github上传了一个我一直在研究的Angular-Express project.

它仍在进行中.我希望它有所帮助.

它使用PassportJ进行用户身份验证,是服务器端授权的基本示例.它演示了如何仅对经过身份验证的用户或仅具有admin角色的用户访问API调用.这是在server / routes.js中实现的,调用中间件函数ensureAuthenticated,以及在server / authentication.js中定义的ensureAdmin.

在routes.js中

// anybody can access this 
app.get('/api/test/users',api.testUsers);


// only logged-in users with ADMIN role can access this 
app.get('/api/users',authentication.ensureAdmin,api.testUsers);

// only logged-in users can access this
app.get('/api/books',authentication.ensureAuthenticated,api.books);

在authentication.js中

ensureAuthenticated: function(req,res,next) {
    if (req.isAuthenticated()) {
       return next();
    } else {
       return res.send(401);
    }
},ensureAdmin: function(req,next) {
  // ensure authenticated user exists with admin role,// otherwise send 401 response status
  if (req.user && req.user.role == 'ADMIN') {
      return next();
  } else {
      return res.send(401);
  }
},
原文链接:https://www.f2er.com/angularjs/141433.html

猜你在找的Angularjs相关文章