У меня есть приложение ember-rails, настроенное с помощью API аутентификации, и я могу успешно (или не) аутентифицироваться с помощью ember auth, и все работает. Однако аутентификация сохраняется только в течение текущего сеанса приложения. Если я перезагрузите страницу или введите URL-адрес, я должен повторно аутентифицироваться.Уязвимость пользователя Ember Auth
Есть ли какие-либо настройки или настройки, необходимые для того, чтобы токен авторизации был более продолжительным? Я не обязательно говорю о функциональности «Помни меня», так как сделать сеанс несколько более жестким.
Мой базовый код:
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'
Auth Шаблон:
<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>
Благодарим за помощь. Если у меня есть быстрое наблюдение, пока я обращаю ваше внимание, у emberAuth в настоящее время есть помощник currentUser, как упоминалось в номере № 11, или я должен сделать свой собственный аксессор для этой информации? – DVG
В настоящее время это 'App.Auth.get ('user')' (javascript)/'App.Auth.user' (ember-handlebars). Он будет заполнен, если вы выберете (то есть установите) конфигурацию 'userModel'. В [docs] (http://ember-auth.herokuapp.com/) есть демонстрация. – heartsentwined
Обновление для googlers: приведенный выше синтаксис изменился в '9.x'. вы теперь устанавливаете 'userModel' внутри' emberData', 'epf' или' emberModel', в зависимости от того, какой модуль интеграции persistence lib вы используете. Объект 'auth' также был введен в маршруты, контроллеры и представления, поэтому теперь вы получаете доступ к нему через' this.get ('auth') 'внутри любого из них и' {{auth.user}} 'в дескрипторах шаблоны. – heartsentwined