在 ember 简单身份验证中将数据保存在浏览器的本地存储中

Save data in localstorage of browers in ember simple auth

我已经为 fb 使用了 ember-simple-auth login.I 我能够获取 fb 的 access_token 并将令牌发送到我的服务器以交换服务器 token.This工作正常,我能够过渡到用户提要 page.But 我面临的问题是第一次 user.I 在将他们带到他们的提要之前必须向他们展示一些引导屏幕 screen.And 从下次我可以跳过他们的入职流程。

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 为假时,我必须向用户显示引导屏幕并向服务器“http://example.co.in/api/post/signupdone

发出 POST 请求

普通用户

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

这次我只需要将用户移动到他们的 feed 屏幕,跳过入职屏幕。

我想将 singup_done 从服务器保存到我的 cookie 或浏览器本地存储(不确定)。这样我就可以在我的车把、控制器、模型中使用这个值,component.I am也接受其他建议,通过简单 method.Please 提前使用代码 example.Thanks 来实现。

您可以通过设置将数据保存在会话的 data 中:

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

这样 signupDone 将被持久化(在会话失效时也是如此)。当然,如果用户在另一个浏览器中登录,则数据将不再存在,因此您应该将 属性 存储在服务器端的资源中。