Я хочу сохранить идентификатор пользователя в сеансе. У меня есть этот метод AUTHENTICATE в пользовательском идентифицирующей:Как сохранить идентификатор пользователя в сеансе с помощью ember-simple-auth?
authenticate: (credentials) ->
_this = this
new (Ember.RSVP.Promise) (resolve, reject) ->
Ember.$.ajax(
url: 'http://localhost:3000/api/v1/sessions'
type: 'POST'
data: session:
email: credentials.identification
password: credentials.password
).then ((response) ->
_this.set('user_id', response.user_id)
Ember.run ->
resolve token: response.token
), (xhr, status, error) ->
response = JSON.parse(xhr.responseText)
Ember.run ->
reject response.error
Это кофейный сценарий, но он работает как JavaScript. Как вы можете это сделать, я установил user_id в сеанс.
В app/initializers/custom-session
, у меня есть это:
import Ember from "ember";
import Session from "simple-auth/session";
export default {
name: "current-user",
before: "simple-auth",
initialize: function(container) {
Session.reopen({
setCurrentUser: function() {
return this.get('user_id')
}.observes('secure.access_token')
});
}
};
user_id
всегда возвращает undefined
. Я нашел много решений в Интернете, но ничего не работает.
Есть ли простое решение для этого?
Я добавил обратный вызов 'then' для моей аутентификации, и он работает. Единственное, что мне не нравится, - это то, что идентификатор пользователя отправляется почтовым запросом, который я сделал в аутентификаторе. У меня нет доступа к нему в моем методе обратного вызова. Знаете ли вы, можно ли получить информацию без второго запроса? – Dougui
@Dougui Что вы подразумеваете под методом обратного вызова? Можете ли вы привести пример? – jcbvm