我正在尝试使用访问令牌将所有查询从前端发送到环回。我正在为angular2使用loopback sdk builder。
用户登录后,loopback返回访问令牌。我使用上面的函数将该访问令牌附加到请求标题
LoopBackConfig.setAuthPrefix(this.user.accessToken);
之后,所有请求的标头都有如下属性:
authorization: Wl3P7ysrfu1tq2gcljezdZRDHH...
我已经将“loopback#token”:{}添加到“initial:before”:in middleware.json
但是,仍然req.accessToken为null。难道我做错了什么?
我还有一个问题。访问令牌应该在标题中吗?在环回文档中,访问令牌位于查询参数中。有没有办法在默认情况下为loopback sdk builder创建的服务添加访问令牌?
答案 0 :(得分:1)
添加此行解决了我认为的问题。
app.use(loopback.token());
现在,每个请求都会调用AccessToken.findForRequest。如果标头,cookie或URL中有访问令牌,则会创建req.accessToken。
在前端,我使用LoopBackConfig.setAuthPrefix函数将访问令牌放入标题。对于EventSource请求,(因为它没有api来设置请求的标头)我将访问令牌添加到url。
let source = new EventSource("/route/event?access_token=" + self.auth.getToken().id);
如果您通过这些方法发送access_token,则应使用https来避免安全漏洞。