【问题标题】:Loopback - Angular2 adding accessToken to requestsLoopback - Angular2将accessToken添加到请求中
【发布时间】:2017-05-10 19:34:27
【问题描述】:

我正在尝试使用访问令牌将所有查询从前端发送到环回。我正在为angular2使用loopback sdk builder。

用户登录后,环回返回一个访问令牌。我使用上面的函数将该访问令牌附加到请求标头

LoopBackConfig.setAuthPrefix(this.user.accessToken);

之后,所有请求的标头都有这样的属性:

authorization: Wl3P7ysrfu1tq2gcljezdZRDHH...

我已将 "loopback#token": {} 添加到 "initial:before": in middleware.json

但是,req.accessToken 仍然为空。难道我做错了什么?

我还有一个问题。访问令牌应该在标题中吗?在环回文档中,访问令牌位于查询参数中。有什么方法可以将访问令牌添加到默认情况下由 loopback sdk builder 创建的服务?

【问题讨论】:

    标签: angular loopback


    【解决方案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 以避免安全漏洞。

    【讨论】:

    • 你是如何使用 LoopBackConfig.setAuthPrefix() 函数的?
    • 你好,我在 2 年前停止了那个项目。所以我记不太清了。但据我在最新版本的代码中看到的,我已经注释掉了那行。可能它不起作用,我更改为 auth.setToken() 和 auth.setUser()。 auth 是 LoopBackAuth 服务
    • 好的,谢谢,这可能是一个只能在后端解决的问题
    猜你喜欢
    • 2020-03-29
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2012-12-01
    • 2020-05-23
    相关资源
    最近更新 更多