RestKit OAuth 2密码验证流程

时间:2012-03-28 16:08:47

标签: ios restkit

我正在使用RestKit和自己的OAuth2提供商。我尝试通过Resource Owner Password Credentials进行身份验证。

是否有人可以提供一些示例代码和最佳实践,一般通过RestKit请求受保护的资源,并通过凭据进行身份验证以获取特定的访问令牌?

可能ResKit本身不是最好的选择吗?

2 个答案:

答案 0 :(得分:9)

您应该查看以下链接:https://github.com/RestKit/RestKit/wiki/OAuth-Support-on-RestKit

您可以尝试这样的事情(我在我的app委托中执行此操作):

RKObjectManager *manager = [RKObjectManager objectManagerWithBaseURLString:@"http://www.yourdomain.com"];
[manager setSerializationMIMEType:RKMIMETypeJSON];

[[RKClient sharedClient] setAuthenticationType:RKRequestAuthenticationTypeOAuth2];
[[RKClient sharedClient] setUsername:@"username"];
[[RKClient sharedClient] setPassword:@"password"];

注意:我没有测试过,因为我使用的是AuthenticationTypeHTTPBasic

希望这有帮助!

编辑:

我发现这个代码示例可以为您提供更多帮助:https://github.com/rodchile/RestKit-OAuth2-Client-Example

答案 1 :(得分:0)

在厌倦了过于复杂的客户端和API之后,我决定自己动手并使用HTTP客户端。

使用RubyMotion和BubbleWrap我已经实现了使用API​​的资源所有者密码凭证。

params = { 
  "grant_type" => "password",
  "username" => "<USERNAME>",
  "password" => "<PASSWORD>",
  "client_id" => "<SOMETHING>",
  "client_secret" => "<SOMETHING>",
  "scope" => "public write"
}

BW::HTTP.post("https://example.com/oauth/token",
              :payload => params,
              :headers => {}) do |response|

  if response.ok?
    # Do something
  end
end