7

我的 Rails 应用程序的用户可以通过以下两种方式之一进行身份验证:

  • 使用他们的 Facebook 帐户
  • 使用我们自己的身份验证

我在 Android 和 Rails 上使用 Facebook deviseSDK omniauth

如何在 Android 上对我的 Rails 应用程序进行身份验证,以便从服务器获取我需要的信息?

注意:我注意到这个问题最近获得了相当多的意见。请不要太严格地遵循这个线程中给出的建议——网络移动得很快,它的历史可以追溯到 3 年前!

4

4 回答 4

2

这可以使用 fb_graph gem(不是 fbgraph!)来完成。

您可以将其添加到您的 gemfile 并执行

user = FbGraph::User.me(token).fetch

token您通过使用例如 Android 上的 Facebook SDK 获得的 oauth 令牌 在哪里。user.email将是用户的电子邮件地址(如果您设置了必要的权限)。

您可以使用此 URL 进行测试:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token
于 2012-12-05T13:33:54.770 回答
0

Niraj Shah 是完全正确的,尽管答案对您来说可能不够详细。要深入回答您的问题,请查看最近才发布的 Ryan Bates 的 Securing an API railscast 。它涵盖了 HTTP 基本身份验证。

您可能还想查看更高级的选项来保护您的 API/为注册用户提供对其数据的访问权限。这里也有一个关于这个的 railscast:http ://railscasts.com/episodes/353-oauth-with-doorkeeper - 虽然这是一个专业剧集,所以你需要注册才能观看它。

于 2012-05-25T12:04:57.850 回答
0

弗朗西斯科,我也有同样的需要。

使用 token_authenticable 的设计场景看起来很简单,应该不是问题,但我不确定处理 Facebook 场景的最佳方法。在网络端,对于 FB 身份验证,我使用了omniauth-facebook,如此处所述:https ://github.com/plataformatec/devise/wiki/OmniAuth:-Overview 。我认为这使用 OAuth 和 FB 作为提供者,所以最新的 RailsCast 关于门卫使用 OAuth 保护 API 的可能性很大。我还没有尝试过,但除非你打败我,否则很快就会尝试。这是链接:http ://railscasts.com/episodes/353-oauth-with-doorkeeper 。

于 2012-05-25T21:46:42.933 回答
0

这完全取决于您的身份验证系统如何工作。您需要在您的服务器上创建一个 API 来处理来自 Android 应用程序的通信并使用该 API 在两者之间传递信息。

于 2012-05-25T11:44:44.017 回答