如何使用 Scribe 通过 POST 向自定义 API 发出 OAuth2 授权请求

How to make OAuth2 Authorization Request via POST to Custom API using Scribe

各位开发者大家好...

我是 oauth2 的新手,我找到了适合我需要的 Scribe Java 库...但问题是我有自己的 oauth2 服务器,它通过 POST 和用户凭据接收请求通过 PAYLOAD "application/x-www-form-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

结果我从我的项目中删除了 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();
    }