Android 移动设备上的facebook身份验证是如何工作的?

Android 移动设备上的facebook身份验证是如何工作的?,android,ios,facebook,oauth,whatsapp,Android,Ios,Facebook,Oauth,Whatsapp,我试图了解fb的认证是如何在移动设备(ios/android)上进行的 只有在我第一次安装fb应用程序时,我才输入用户名/pwd。就这样。从下一次开始,它将自动进行身份验证 1) fb移动应用程序是否在设备上的任何文件中存储用户名/pwd? 2) 它会使用oauth还是类似的令牌机制?如果是,那么存储在设备上的令牌在哪里 我想,我的问题是,它存储在哪个内存/路径/文件名中,这样它就安全了,其他应用程序/根用户无法访问它 非常感谢这是个好问题 将用户密码存储在设备上的标准本地目录中是危险的,原因很

我试图了解fb的认证是如何在移动设备(ios/android)上进行的

只有在我第一次安装fb应用程序时,我才输入用户名/pwd。就这样。从下一次开始,它将自动进行身份验证

1) fb移动应用程序是否在设备上的任何文件中存储用户名/pwd? 2) 它会使用oauth还是类似的令牌机制?如果是,那么存储在设备上的令牌在哪里

我想,我的问题是,它存储在哪个内存/路径/文件名中,这样它就安全了,其他应用程序/根用户无法访问它


非常感谢这是个好问题

将用户密码存储在设备上的标准本地目录中是危险的,原因很明显,如果手机被泄露,黑客可能会访问可能在帐户之间共享的密码(您使用的每个服务是否都有不同的密码?)

但是,将用户名存储到设备的默认存储中并没有太大问题,这通常是选择的方法。对于iOS,这将是
NSUserDefaults

现在,对于密码和令牌(它们肯定是必要的,FB不会在基于令牌的身份验证上偷工减料),它们都是应该受到保护的安全内容,它们通常存储在某种加密的密钥链中。在iOS的情况下,借助钥匙链服务的256位加密

因此,当您使用自动登录构建应用程序时,您可以从加载的密钥链中检索密码和令牌。但是,如果设备丢失并最终落入坏人手中,所有这些数据都将被加密且无法访问

当然,我们不要假装这个方法很简单:

编辑:虽然我的背景是iOS,但我知道Android使用Keystore作为替代品


这是个好问题

将用户密码存储在设备上的标准本地目录中是危险的,原因很明显,如果手机被泄露,黑客可能会访问可能在帐户之间共享的密码(您使用的每个服务是否都有不同的密码?)

但是,将用户名存储到设备的默认存储中并没有太大问题,这通常是选择的方法。对于iOS,这将是
NSUserDefaults

现在,对于密码和令牌(它们肯定是必要的,FB不会在基于令牌的身份验证上偷工减料),它们都是应该受到保护的安全内容,它们通常存储在某种加密的密钥链中。在iOS的情况下,借助钥匙链服务的256位加密

因此,当您使用自动登录构建应用程序时,您可以从加载的密钥链中检索密码和令牌。但是,如果设备丢失并最终落入坏人手中,所有这些数据都将被加密且无法访问

当然,我们不要假装这个方法很简单:

编辑:虽然我的背景是iOS,但我知道Android使用Keystore作为替代品


我想,ios上的钥匙链服务是安全的,但看到你的链接后,我又重新考虑了一下。在android应用程序上,密码/令牌的详细信息可以准确地存储以确保安全(相当于钥匙链)。@SrinivasKK我同意,这是个问题。查看我对Android的编辑。我刚刚在我妻子的Android设备上做了一个测试。我进入设置->应用程序管理->facebook->清除数据。现在我打开了fb应用程序,我得到了预填充用户id的登录屏幕。我认为,pwd存储在某个文件或密钥库中,该文件或密钥库已被清除。我不知道如何清除iphone上的数据。有什么想法/意见吗?谢谢你的回答和对Android的编辑。这是一个好问题,我会解释原因。事实证明,无法在iOS上清除用户设备上的钥匙链。然而,在构建软件时,这当然是至关重要的。因此,我的方法是在我的应用程序中添加一行脚本,清除关联的密钥链,在设备上运行,然后注释掉脚本,然后按照常规再次运行应用程序。这解释了开发人员如何删除密钥链。那很好。如果可以的话,你也可以把你的专业知识放在这个帖子上吗:感谢你的知识和帮助。我想,ios上的钥匙链服务是安全的,但在看到你的链接后,我正在重新考虑一下。在android应用程序上,密码/令牌的详细信息可以准确地存储以确保安全(相当于钥匙链)。@SrinivasKK我同意,这是个问题。查看我对Android的编辑。我刚刚在我妻子的Android设备上做了一个测试。我进入设置->应用程序管理->facebook->清除数据。现在我打开了fb应用程序,我得到了预填充用户id的登录屏幕。我认为,pwd存储在某个文件或密钥库中,该文件或密钥库已被清除。我不知道如何清除iphone上的数据。有什么想法/意见吗?谢谢你的回答和对Android的编辑。这是一个好问题,我会解释原因。事实证明,无法在iOS上清除用户设备上的钥匙链。然而,在构建软件时,这当然是至关重要的。因此,我的方法是在我的应用程序中添加一行脚本,清除关联的密钥链,在设备上运行,然后注释掉脚本,然后按照常规再次运行应用程序。这解释了开发人员如何删除密钥链。那很好。如果可以的话,你是否也能将你的专业知识运用到这方面:感谢你的知识和帮助。