我正在使用RestKit和自己的OAuth2提供商。我尝试通过Resource Owner Password Credentials进行身份验证。
是否有人可以提供一些示例代码和最佳实践,一般通过RestKit请求受保护的资源,并通过凭据进行身份验证以获取特定的访问令牌?
可能ResKit本身不是最好的选择吗?
答案 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