gpt4 book ai didi

ios - 我可以在 iPhone 应用程序上使用 Facebook 身份验证服务器端流程并仍然进行客户端交互吗?

转载 作者:可可西里 更新时间:2023-11-01 06:16:57 25 4
gpt4 key购买 nike

我有一个使用 Facebook 身份验证登录用户的网站。它使用 oAuth 2.0 服务器端流程进行身份验证,一切正常。

我现在正在为同一网站开发一个 iPhone 应用程序,并希望允许用户使用 FB 身份验证通过 iPhone 应用程序登录该网站。Facebook iOS SDK 提供了使用客户端流程进行身份验证的机制,其中在我的 iPhone 应用程序中获取访问 token 。

<罢工>现在要使用我的服务器对用户进行身份验证,并使访问 token 对我的服务器可用,我想将此访问 token 发送到我的服务器(通过 https)并根据我的数据库对用户进行身份验证并设置我自己的 session 相关 cookie。这是首选或建议的方法吗?我需要我的服务器上的访问 token ,因为我请求离线访问权限并让我的 webapp 直接从我的服务器与 FB 用户帐户交互。

对我来说,一个更简单的选择是在我的 iPhone 应用程序上也只使用服务器端流程进行身份验证,因为不需要做任何新的事情,而且服务器端代码对于网站或iPhone 应用程序。那可能吗?

我无法使用客户端身份验证并将访问 token 传递到我的服务器以针对我的系统进行身份验证,也无法存储以供进一步使用。客户端身份验证收到的访问 token 与服务器端身份验证 token 完全不同,两者不能互换使用。我将不得不使用服务器端身份验证。

<罢工>一个解决方案( provided here - 在问题的第一条评论中)是使用 UIWebView 并模拟服务器端流程。以下评论提到了我无法解决的这种方法的问题。

这已通过检查登录后 web View 重定向到的 URL 解决。

另一个问题是,我的 iPhone 应用程序也进行一些客户端交互(例如 FBShare、写到 friend 的墙上等)。如果我使用模拟的服务器端身份验证,我将不得不为这些交互进行另一个客户端身份验证,或者采取痛苦的方法并通过我的服务器路由这些操作。后者绝对不可取。我该怎么做?我能否避免这种双重登录,因为这会带来非常糟糕的用户体验?

最佳答案

我也有类似情况。我有一个 iOS 原生应用需要知道用户是谁。

我有一个网站 (RoR),使用 Devise,我可以通过它的 OmniAuth gem 登录/创建 Facebook/Twitter 帐户。

但是,对于 Facebook 和 Twitter,我似乎必须在每个中创建两个条目,一个用于网站,一个用于应用程序。

这些是每个单独的 API key 。

对于 iOS 应用程序,我想出的唯一方法是:* 如果用户想通过 Facebook 的 Twitter 授权/创建帐户,则通过 UIWebView 将他们发送到网站进行登录。

来自 iOS 的任何推文/FB 帖子实际上将通过网站上的 API 发布到每个人,该 API 将使用用户的访问 token 代表他们发布推文。

问题是,我相当不喜欢用于登录的 Webview。如果有人有任何建议,我会洗耳恭听。

关于ios - 我可以在 iPhone 应用程序上使用 Facebook 身份验证服务器端流程并仍然进行客户端交互吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com