Cordova - 使用客户端 Facebook Oauth 的安全性
Cordova - Security using client-side Facebook Oauth
我目前正在制作一个 Ionic Cordova 应用程序,它需要 Facebook Auth。
我为此使用了 Nic Raboy 的非常简单的 plugin。我制作了一个图表来显示当前的流程。
问题是:如果对手以某种奇怪的方式知道在我的 (Laravel 5.1) 服务器上注册的路径;难道他们不能 get the Facebook ID 并且只是组成一个假的访问令牌 + 附加数据,然后代表其他人创建一个用户吗?
即使这假设不是问题,我如何确保登录的用户是实际登录的用户?由于 registration/logging 与使用 Facebook 作为身份验证相同,我假设服务器正在检查某些值。使用 Facebook 访问令牌对我来说是有意义的,但由于该令牌经常更改,因此对我来说似乎并不可靠。
我也看过 Laravel 的 Socialite,但它似乎只适用于视图,我显然不能,因为我将服务器用作 REST 服务器。
感谢任何帮助。谢谢。
通常您会让您的服务器直接与 FB 对话。接受的方法是:
- Cordova 应用程序执行握手并从 Facebook 应用程序获取 FacebookID、访问令牌 和其他凭据。
- Cordova 应用程序将此信息发送到您的服务器。
- 重要提示:服务器使用这些凭据并直接与 FB 对话。以这种方式,服务器通常通过使用 Access Token 与 FB 对话来执行验证。使用 Access Token 它从 FB 获取信息并确保一切匹配。例如,它会检查从 Cordova 应用程序发送的 FacebookID 是否与直接从 FB 检索的 FacebookID 相同。
可以找到有关此方法的更多信息 here。所附的link具体说明:
The call will need to be server-to-server, since it involves your app secret.
这种方法通常可以保证没有第三方攻击。即使有人知道你的 facebook id(他们很容易得到,因为它是 public),他们也不能假装是你,因为他们缺少访问令牌(过期)。
我目前正在制作一个 Ionic Cordova 应用程序,它需要 Facebook Auth。
我为此使用了 Nic Raboy 的非常简单的 plugin。我制作了一个图表来显示当前的流程。
问题是:如果对手以某种奇怪的方式知道在我的 (Laravel 5.1) 服务器上注册的路径;难道他们不能 get the Facebook ID 并且只是组成一个假的访问令牌 + 附加数据,然后代表其他人创建一个用户吗?
即使这假设不是问题,我如何确保登录的用户是实际登录的用户?由于 registration/logging 与使用 Facebook 作为身份验证相同,我假设服务器正在检查某些值。使用 Facebook 访问令牌对我来说是有意义的,但由于该令牌经常更改,因此对我来说似乎并不可靠。
我也看过 Laravel 的 Socialite,但它似乎只适用于视图,我显然不能,因为我将服务器用作 REST 服务器。
感谢任何帮助。谢谢。
通常您会让您的服务器直接与 FB 对话。接受的方法是:
- Cordova 应用程序执行握手并从 Facebook 应用程序获取 FacebookID、访问令牌 和其他凭据。
- Cordova 应用程序将此信息发送到您的服务器。
- 重要提示:服务器使用这些凭据并直接与 FB 对话。以这种方式,服务器通常通过使用 Access Token 与 FB 对话来执行验证。使用 Access Token 它从 FB 获取信息并确保一切匹配。例如,它会检查从 Cordova 应用程序发送的 FacebookID 是否与直接从 FB 检索的 FacebookID 相同。
可以找到有关此方法的更多信息 here。所附的link具体说明:
The call will need to be server-to-server, since it involves your app secret.
这种方法通常可以保证没有第三方攻击。即使有人知道你的 facebook id(他们很容易得到,因为它是 public),他们也不能假装是你,因为他们缺少访问令牌(过期)。