我正在使用Ember-Auth并登录我的rails应用程序。
登录后,auth.auth-token已设置,我可以在我的模板中查看:
{{auth.authToken}}
我不需要将此令牌与我的余烬数据请求一起传递,但是我的生活无法弄清楚如何访问它。
App.Store = DS.Store.extend
adapter: DS.RESTAdapter.reopen
namespace: 'api/v1'
setHeaders: (->
this.set('headers', { "auth_token": <what goes here?> });
return
).on('init');
我尝试过的一些事情:
App.Session.get("authToken")
App.auth_token
App.auth.auth_token
App.Auth.get('auth_token')
App.Auth.get('authToken')
似乎有很多人以不同的方式做到这一点,因为包含了快速变化的API。但我所尝试的一切最终都是未定义的。
DEBUG: -------------------------------
DEBUG: Ember : 1.5.0-beta.3
DEBUG: Ember Data : 1.0.0-beta.7.f87cba88
DEBUG: Handlebars : 1.3.0
DEBUG: jQuery : 1.11.0
DEBUG: -------------------------------
Auth
配置:
App.Auth = Ember.Auth.extend
request: 'jquery'
response: 'json'
strategy: 'token'
session: 'cookie'
signInEndPoint: '/api/v1/user_session' # api url for sign-in
signOutEndPoint: '/api/v1/user_session' # api url for sign-out
tokenKey: 'auth_token' # param returned from api containing auth token
tokenIdKey: 'user_id' # param returned from api for id of authenticated user
tokenLocation: 'param' # auth token will be sent to api as a param
答案 0 :(得分:1)
我相信这个问题的答案是我的身份验证服务器没有在我的json响应中返回具有正确名称的令牌。
由于遇到此问题,我切换到了ember-simple-auth,但是在我发现我的服务器返回的json中我的身份验证令牌的名称是:&#34; auth_token&#34;之后我遇到了类似的问题。而不是ember-simple-auth所期望的:&#34; access_token&#34;
所以我的猜测是auth看到请求成功,这就解释了为什么我可以登录。但是后来会话是空的,因为ember-simple-auth正在寻找一个不同名称的令牌,并且没有创建会话的麻烦。
也许对ember-auth和ember-simple-auth人员的建议是在返回的令牌丢失时添加警告或错误?
希望这有助于其他人:)