所以我有一个使用身份验证API设置的ember-rails应用程序,我可以成功(或不)使用ember auth进行身份验证,一切正常。但是,身份验证仅在当前应用程序会话期间持续存在。如果我重新加载页面或输入URL,我必须重新进行身份验证。
是否需要一些设置或配置才能使auth令牌更长久?我不一定在谈论“记住我”的功能,而是让单个会话更加强大。
我的基本代码:
验证对象:
App.Auth = Em.Auth.create
currentUser: null
signInEndPoint: '/users/sign_in'
signOutEndPoint: '/users/sign_out'
tokenKey: 'auth_token'
tokenIdKey: 'user_id'
登录查看:
App.AuthSignInView = Ember.View.extend
templateName: 'auth/sign_in'
email: null
password: null
submit: (event, view) ->
event.preventDefault()
event.stopPropagation()
StripfighterEmber.Auth.signIn
data:
email: @get 'email'
password: @get 'password'
验证模板:
<form class="form-inline">
{{view Ember.TextField class="input-small" placeholder="Email" valueBinding="view.email"}}
{{view Ember.TextField type="password" class="input-small" placeholder="Password" valueBinding="view.password"}}
<button type="submit" class="btn btn-inverse btn-small">Sign in</button>
</form>
答案 0 :(得分:2)
是否需要一些设置或配置才能使auth令牌更长久?我不一定在谈论&#34;记住我&#34;功能,就像让一个会话更加强大。
您可以将身份验证令牌保存到Cookie或本地存储中。但我不推荐它。这就是ember-auth内置的记忆功能的用途。 http://ember-auth.herokuapp.com/docs
答案 1 :(得分:2)
ember-auth dev这里。
你的用例基本上是默认的“记住我”,但持续时间很短。您仍然可以启用rememberable
(启用自动调用),只需“静默选择加入”此功能,即只要登录有效,您的服务器就会返回记住Cookie。
背后的原因是,从ember应用程序的角度来看,无法区分浏览器重启,网址更改和刷新。所有这些都代表了应用重启。由此,ember需要从保存的信息(cookies,localStorage)和传递的信息(url)恢复应用程序状态。身份验证会话也不例外。 rememberable
模块将身份验证令牌保存在前者中(您选择cookie
或localStorage
); urlAuthenticatable
模块允许您在网址中传递身份验证信息。
正如迈克所说,你也可以自己动手,但我会建议你利用现有的功能(“其他人的努力”)。