如何使用Android客户端的门卫?

时间:2014-06-15 10:10:45

标签: android ruby-on-rails doorkeeper

我正在构建一个应用程序,它包含一个将连接到我的rails应用程序的移动客户端(Android本机应用程序)。我需要一种方法让用户使用Android应用程序登录并注册到我的rails应用程序。所以我在我的rails应用程序上安装了门卫并设计了宝石,并按照here的说明查看了工作原理。正如您在authorization code flow page中看到的那样,有多个步骤,例如注册客户端,请求授权,请求访问令牌。
我的问题是如何从我的Android应用程序执行所有这些步骤。任何帮助深表感谢。感谢

1 个答案:

答案 0 :(得分:3)

对于注册(注册),您可以在用户控制器中创建一个方法。或者,您可以自定义Devise的sign_up页面,以便在移动视图中更好地查看,并在应用程序的webview中进行注册。

对于门卫,要么按照您链接的常用流程,要么采用更简单的方法。我做的是

  1. activate the refresh token - 这将允许用户获取其访问令牌及其刷新令牌,用于在访问令牌过期后重新生成访问令牌的令牌。这样您就不会在应用上保留用户的登录注册,只需保留令牌。

  2. 使用 skip_authorization 标记config / initializers / doorkeeper.rb中的某些应用,以允许自动授权某些特定应用。您可以允许自动授权所有应用,但我建议您将其中一些应用白名单:

    skip_authorization do |client|
      whitelisted_apps = ['app1_id', 'app2_id']
      whitelisted_apps.include? client.application.uid
    end
    
  3. 我希望这会有所帮助。