2015-09-04 4 views
3

разработчиков Привет, дружище ...Как сделать OAuth2 запрос на авторизацию через POST на заказ API с помощью Scribe

Я новичок в oauth2 и я нашел Scribe Java библиотеку, которая подходит моим потребностям ... но проблема в том, что я есть свой собственный сервер oauth2, который получает запрос через POST и учетные данные передаются через PAYLOAD «применение/х-WWW-форм-urlencoded»

Здесь вы можете увидеть пример запроса: SCREENSHOT

и когда я пытаюсь реализовать мой собственный ApiClass с использованием документации

https://github.com/fernandezpablo85/scribe-java/wiki/Custom-Apis

, и я заметил, что учетные данные клиента прикреплены к URL-адресу

private static final String AUTHORIZE_URL = "http://jimbo.com/oauth/authorize?token=%s"; 

что означает запросы на авторизацию осуществляется через GET :(

Как настроить ApiClass правильно сделать Запрос POST?

Заранее спасибо :)

UPD: для oauth2 стороне сервера Я использую

github.com/Filsh/yii2-oauth2-server

+0

Попробуйте usi ng RestTemplate в android для создания сообщений, получения или обмена запросами типа. –

+0

Если вы хотите, я всегда могу поместить некоторые образцы, но есть множество образцов, уже доступных в сети. –

+0

@WeareBorg Спасибо за ваш ответ :) Я думал о внедрении своей собственной библиотеки для OAuth2 ... Любая помощь была оценена^_^ – JavaMachine

ответ

1

В результате я удаленный Scribe из моего проекта ... и реализовал собственный метод для доступа к токену ...

HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://127.0.0.1/oauth2/token"); 
    try { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("grant_type", "password")); 
     nameValuePairs.add(new BasicNameValuePair("username", username)); 
     nameValuePairs.add(new BasicNameValuePair("password", password)); 
     nameValuePairs.add(new BasicNameValuePair("client_id", clientID)); 
     nameValuePairs.add(new BasicNameValuePair("client_secret", clientSecret)); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

     JSONObject json_auth = new JSONObject(EntityUtils.toString(response.getEntity())); 
     String token = json_auth.getString("access_token"); 

    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^