2013-11-09 1 views
2

Я строй мобильного приложения, которое использует тип авторизации Grant «владелец ресурса Пароль Credentials»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

ли вы когда-нибудь найти способ сделать с помощью самого Scribe? –

+0

@TomLeese Я использовал [Retrofit] (http://square.github.io/retrofit/) для клиента. 'Public interface MyService { @FormUrlEncoded @POST ("/ oauth/token") Вход для входа в систему (@ Поле ("grant_type") String grant_type, @Field ("client_id") String client_id, @Field ("client_secret") String client_secret, @Field ("username") String email, @Field ("password") Строковый вывод); } ' –

+0

Вы имели в виду, что scribe не нужен вообще? – BornToCode