
安全
|
215
app.get('/sales', employeeOnly, (req, res) => {
res.render('sales')
})
很明显,你想把基于角色的授权做得多么简单或多么复杂都可以。例如,如果你想授权多
个角色,应该怎么办?可以使用下面的函数和路由:
const allow = roles => (req, res, next) => {
if(req.user && roles.split(',').includes(req.user.role)) return next()
res.redirect(303, '/unauthorized')
}
对于基于角色的授权,你可以充分发挥创造性,希望这个例子能提供一个思路。还可以基
于其他的属性授权,比如说用户成为会员的时长,或者用户在你这里已经订购了多少度假
产品。
18.3.8
增加认证提供者
既然框架已经搭建好,增加更多的认证提供者就会变得很容易。不妨说我们希望能使用谷
歌来认证。在开始增加新代码之前,需要先在谷歌账号上设置一个项目。
进入谷歌开发者控制台,从导航栏上选择一个项目(如果你还没有项目,点击“
New
Project
”并遵照指示操作)
。选择一个项目之后,点击“
Enable APIs and Services
”(启用
API
和服务)
,并启用
Cloud Identity API
。点击“
Credentials
”(凭据),然后点击“
Create
Credentials
”
(创建凭据),选择“
OAuth ...