У меня есть ситуация, когда я хочу иметь возможность автоматически входить в систему пользователя на основе параметра токена подтверждения в URL-адресе. На моем маршруте я делаю AJAX-запрос на сервер для проверки токена и отправляю обратно тот же сериализованный Oauth2 JSON, который используется для входа в систему.
Можно ли войти в систему с этим токеном?
Сначала пользователь переходит по URL-адресу, например:
http://example.com/users/confirmation?confirmation_token=eisz6LMzmck55xHuqopF
Затем мой маршрут отправляет запрос AJAX на сервер, который отвечает токеном Oauth2.
Вот моя текущая реализация, пытающаяся использовать аутентификатор для его восстановления. Несмотря на то, что в консоли отображается сообщение «Я должен войти в систему», это не работает. Я подозреваю, что это потому, что он не знает, как восстановить сеанс. Глядя на документацию по сеансу n, я вижу общедоступный метод для ручной аутентификации, но не для восстановления из токена oauth.
import Ember from 'ember';
import ajax from 'ic-ajax';
export default Ember.Route.extend({
model: function(params) {
var path = MyApp.API_NAMESPACE + '/confirmation?confirmation_token=' + params.confirmation_token;
var authenticator = this.container.lookup('simple-auth-authenticator:oauth2-password-grant');
return ajax(path).then(function(response) {
return authenticator.restore(response).then(function() {
console.log('I should be logged in');
});
}).catch(function(request) {
console.log(request);
});
}
});