facebook - Ionic 3 原生 facebook 登录流程
问题描述
我刚刚使用本机 facebook 登录插件完成了 Ionic 3 中的登录过程。一切似乎都很好。
我获取我的 Facebook 数据并使用存储插件存储它们。
这对我来说开始了奇怪的部分。
我希望下次用户打开应用程序时能够自动通过身份验证阶段,我不确定哪个是正确的解决方案。
解决方案 1
当用户第一次登录时存储数据,所以下次他在app.component.ts
i 中打开应用程序时检查我存储的数据(前 userId)是否存在。
storage.get('userID').then((val) => {
this.isLoggedIn = true;
this.setRoot(MainPage);
});
解决方案 2
我使用该getLoginStatus
函数,如果返回response.status === 'connected'
,我假设用户之前已通过身份验证并且我存储的数据存在。
其中一个被认为是更好的方法吗?
您使用不同的解决方案吗?
在这种情况下我是否出于某种原因需要访问令牌,或者这仅对 Web 应用程序有用?
解决方案
我会说这取决于您正在寻找的安全性,您的应用程序是否处理敏感信息?
如果不是,那么您可以简单地存储 userId (您的解决方案 1)并且您很好。
如果您正在处理敏感数据,那么您应该考虑拥有一个更安全的系统(例如,您必须考虑用户可能会丢失其手机,因此用户可能希望切断访问权限......)使用 facebook 处理可能的方法:
- 将您从 facebook 身份验证获得的 access_token 发送到远程服务器,您可以在其中检查它(此处是更多信息的链接)
- 将令牌保存到与您的新用户相对应的服务器(例如 json Web 令牌)
- 发回这个令牌并保存在本地
- 对每个身份验证检查令牌是否仍然有效的服务器端
我建议您阅读 Josh Morony 编写的教程:
https://www.joshmorony.com/using-json-web-tokens-jwt-for-custom-authentication-in-ionic-2-part-2/
https://www.joshmorony.com/creating-role-based-authentication-with-passport-in-ionic-2-part-2/
https://www.joshmorony.com/basic-security-for-ionic-cordova-applications/
推荐阅读
- sql - 帐户上的 SFDC 数据加载器 - 相同的 ID,不同的字段值
- javascript - 单击时单选按钮不执行 JavaScript 操作
- r - 为 r 中的多个水平创建置信区间图
- reactjs - Passing data from same level components React
- javascript - 如何从中获取选定的值
? - mysql - 使用 AND/OR 的 SQL 语句问题
- android - Android:CollapsingToolBar 不会将折叠后出现在工具栏底部的标题的图标设置在一级
- sql-server - 两个同名的 SQL Server 实例?
- php - symfony 2.8 谷歌驱动 api V2
- python - 文件中的空行时中断