Сохранить данные в локальном хранилище браузеров в простой авторизации ember

Я использовал ember-simple-auth для входа в fb. Я могу получить access_token fb и отправить токен на свой сервер для обмена токеном сервера. Это работает нормально, и я могу перейти на страницу канала пользователя. Но проблема, с которой я сталкиваюсь, - это первый раз, когда пользователь. Я должен показать им какой-то экран адаптации, прежде чем перейти к их экрану ленты. И в следующий раз я могу пропустить процесс адаптации для них.

torii.js

export default Torii.extend({
  torii: service('torii'),

  authenticate() {
    return new RSVP.Promise((resolve, reject) => {
      this._super(...arguments).then((data) => {
        console.log(data.accessToken);
        raw({
          url:      'http://example.co.in/api/socialsignup/',
          type:     'POST',
          dataType: 'json',
          data:     { 'access_token':data.accessToken,'provider':'facebook'}
        }).then((response) => {
          console.log(response.token);
          resolve({
            // jscs:disable requireCamelCaseOrUpperCaseIdentifiers
            access_token: response.token,
            // jscs:enable requireCamelCaseOrUpperCaseIdentifiers
            provider: data.provider
          });
        }, reject);
      }, reject);
    });
  }
});

Ответ, который я получаю от своего сервера, выглядит примерно так.

Для первого пользователя.

{access_token:'abcd...',signup_done:false}

Когда Signup_done имеет значение false, я должен показать пользователю экран регистрации и сделать POST-запрос на сервер "http://example.co.in/api/post/signupdone"

Для обычного пользователя

{access_token:'abcd...',singup_done:true}

На этот раз мне нужно просто переместить пользователя на экран подачи, пропуская экран загрузки.

Я хочу сохранить singup_done с сервера в локальное хранилище cookie или браузера (не уверен). Чтобы я мог использовать это значение в своих рулях, контроллере, модели, компоненте. Я также открыт для других предложений, чтобы добиться этого с помощью простого метода . Пожалуйста, используйте код для примера. Заранее спасибо.


person nandanself    schedule 07.02.2016    source источник


Ответы (1)


Вы можете сохранить данные в сеансе data, просто установив его:

this.get('session').set('data.signupDone', true);

Таким образом, signupDone будет сохранен (также, когда сеанс будет признан недействительным). Конечно, если пользователь входит в систему в другом браузере, эти данные больше не будут представлены, поэтому вам, вероятно, следует вместо этого сохранить свойство в ресурсе на стороне сервера.

person marcoow    schedule 08.02.2016