ember-simple-auth oauth2授权问题

时间:2014-04-15 15:02:04

标签: authentication ember.js oauth

我正在尝试在Node.js服务器上运行的Ember App上设置授权。

我正在使用oauth2 Authenticator,它正在从服务器请求令牌。这工作正常。我能够为应用程序提供一个令牌,并将其保存在本地存储中。

但是,当我发出后续请求时,授权者没有将标记添加到标题中,我已使用文档(http://ember-simple-auth.simplabs.com/ember-simple-auth-oauth2-api-docs.html)中描述的方法初始化了授权程序:

Ember.Application.initializer({
  name: 'authentication',
  initialize: function(container, application) {
    Ember.SimpleAuth.setup(container, application, {
        authorizerFactory: 'authorizer:oauth2-bearer'
    });
  }
});

var App = Ember.Application.create();

我已经向Authorizer添加了一个init方法,在初始化时将消息记录到服务器,所以我知道它正在被加载。唯一的问题是,授权者的授权方法永远不会被调用。

感觉我错过了图书馆的基本概念。

我有一个用户路线,我使用AuthenticatedRouteMixin保护,如下所示:

App.UsersRoute = Ember.Route.extend(Ember.SimpleAuth.AuthenticatedRouteMixin, {
  model: function() {
    return this.get('store').find('user');
  }
});

如果会话中没有令牌,则提取数据,正常并重定向到/ login,但请求标头不包含令牌:

GET /users HTTP/1.1
Host: *****
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: application/json, text/javascript, */*; q=0.01
Origin: *****
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Referer: *****
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

非常感谢您给予我的任何帮助。

1 个答案:

答案 0 :(得分:1)

您的REST API服务的起源是否与可能加载的应用程序不同? Ember.SimpleAuth默认不授权跨源请求(请参阅此处:https://github.com/simplabs/ember-simple-auth#cross-origin-authorization