繁体   English   中英

两足式Oauth客户端无法与Scribe一起使用

[英]2-legged Oauth client not working with Scribe

我正在尝试对据说接受2腿和3腿身份验证的自定义服务器(不是我的服务器)进行身份验证。 由于我正在针对该服务器验证我的服务器应用程序,因此我认为2足式服务器最适合这里。 我只需要存储auth令牌以用于将来的调用,并且当它过期时,显然可以重复该过程。

因此,按照本教程其他教程 ,我创建了Scribe uber简单客户端:

    OAuthService service = new ServiceBuilder()
       .provider(DummyAPIProvider.class)
       .apiKey("mykey")
       .apiSecret("mysecret")
       .build();

    OAuthRequest request = new OAuthRequest(Verb.GET, "http://orion.lab.fi-ware.eu:1026/version");

    Token accessToken = new Token("", "");
    String pepe = accessToken.toString();
    service.signRequest(accessToken, request);
    System.out.println(pepe);
    Response response = request.send();
    System.out.println(response.getBody());
    ret = response.getBody();

服务器的响应始终是:

    Auth-token not found in request header

鉴于该消息,我不确定是否必须在请求中包括auth-token ...如果是的话...任何想法如何?

另一方面,我有一个能够执行此身份验证的Javacript客户端,该客户端主要由三个文件组成:config.js,oauth.js和server.js(它使用Node和express)。 在这里检查。 但是,此客户端似乎正在执行三足式身份验证。

有任何想法吗? 有什么想法吗?

我在服务上设置了signatureType(SignatureType.Header),并使用了2条腿的提供程序示例类SimpleGeoApi; 它为我工作!

final OAuthService service = new ServiceBuilder()
                .provider(SimpleGeoApi.class)
                .apiKey("mykey")
                .apiSecret("mysecret")
                .signatureType(SignatureType.Header)
                .build();

    new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
            OAuthRequest request = new OAuthRequest(Verb.GET, "http://myweb.com/chapters.json");
            service.signRequest(OAuthConstants.EMPTY_TOKEN, request);
            Response response = request.send();
            Log.w("TEST", response.getCode() + " ");
            Log.w("TEST: ", response.getBody());
            return null;
        }
    }.execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM