将数据保存在 ember 简单身份验证中的浏览器本地存储中
Save data in localstorage of browers in ember simple auth
我使用ember-simple-auth进行fb登录。我能够获取 fb 的access_token并将令牌发送到我的服务器以交换服务器令牌。这工作正常,我能够过渡到用户提要页面。但是我面临的问题是第一次使用。在将他们带到他们的提要屏幕之前,我必须向他们展示一些入职屏幕。从下次开始,我可以跳过他们的入职流程。
鸟居.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}
这次我只需要将用户移动到他们的提要屏幕,跳过载入屏幕。
我想将singup_done从服务器保存到我的cookie或浏览器本地存储(不确定(。这样我就可以在我的车把、控制器、模型、组件中使用此值。我也愿意接受其他建议,以通过简单的方法实现这一目标。请使用代码作为示例。提前谢谢。
您只需设置即可将数据保存在会话data
中:
this.get('session').set('data.signupDone', true);
这样signupDone
将被保留(当会话失效时也是如此(。当然,如果用户在另一个浏览器中登录,则该数据将不再存在,因此您可能应该将属性存储在服务器端的资源中。
相关文章:
- web浏览器中的离线应用程序存储数据并在之后上传
- Django会话与浏览器本地存储
- qoxdoo中的离线存储是否与所有浏览器和本地文件系统兼容
- 制作一个阻止存储在浏览器历史记录中的网页
- 在 Angularjs 中浏览器页面的客户端加载中存储参考数据
- 浏览器会话存储.在选项卡之间共享
- 浏览器的本地存储有多安全
- 在客户端/浏览器端存储照片(不是照片的链接)
- 如何在浏览器中存储缓存
- 方法存储数据,直到浏览器关闭
- 如何使用jquery将ajax响应存储在浏览器缓存中
- 如何在Ember.js中禁用数据适配器以仅使用浏览器存储
- 浏览器存储 - 物理位置
- 如何在用户上跨浏览器存储数据's机器
- 浏览器存储Etag的方式和时间
- 用angularjs把数据写入本地浏览器存储
- 停止浏览器存储访问历史记录
- 如何停止浏览器存储密码值
- 将用户文本区内容保存到浏览器存储中
- web部署-JavaScript:如何检查图像或任何资产是否由浏览器存储,而不是从互联网下载