2013-11-09 64 views
2

我建立一個使用授權格蘭特型「資源所有者密碼憑據」的Java隸客戶端使用OAuth 2資源所有者密碼憑據

測試用Ruby代碼用「的oauth2」寶石移動應用,它工作正常

client = OAuth2::Client.new('the_client_id', 'the_client_secret', :site => "http://example.com") 
access_token = client.password.get_token('[email protected]', 'sekret') 
puts access_token.token 

Java代碼

OAuthService service = new ServiceBuilder() 
     .provider(MyApi.class) 
     .apiKey("the_client_id") 
     .apiSecret("the_client_secret") 
     .debug() 
     .build(); 
// the next step should provide ('[email protected]', 'sekret') 
// because I am using "Resource Owner Password Credentials" 
// http://tools.ietf.org/html/draft-ietf-oauth-v2-31#page-53 
Token requestToken = service.getRequestToken(); 

我怎樣才能提供抄寫員(或與其他庫最好與Android兼容)的用戶名和密碼?

現在我無法找到一種方法來與Scribe擴展「DefaultApi20」做到這一點。

回答

3

我現在明白了,這只是一個POST請求

curl -i http://localhost:3000/oauth/token \ 
    -F grant_type=password \ 
    -F client_id=the_client_id \ 
    -F client_secret=the_client_secret \ 
    -F [email protected] \ 
    -F password=sekret 
+0

你有沒有找到一種方法,做與使用劃線本身? –

+0

@TomLeese我爲客戶端使用了[Retrofit](http://square.github.io/retrofit/).'公共接口MyService {@ 0FormUrlEncoded @POST(「/ oauth/token」) 令牌登錄(@字段(「grant_type」)字符串grant_type, @Field(「client_id」)字符串client_id,@Field(「client_secret」)字符串client_secret, @Field(「username」)字符串電子郵件,@Field(「password」)字符串引腳); }' –

+0

你是不是指抄寫員根本不需要? – BornToCode

相關問題