我正在尝试访问github api(https://api.github.com/user),如scribe库示例中所述 (https://github.com/scribejava/scribejava/blob/master/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/GitHubExample.java)
将此授权网址返回给我
但现在我必须提供上面链接示例中提到的授权码
final Scanner in = new Scanner(System.in, "UTF-8");
System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
System.out.println();
// Obtain the Authorization URL
System.out.println("Fetching the Authorization URL...");
final String authorizationUrl = service.getAuthorizationUrl();
System.out.println("Got the Authorization URL!");
System.out.println("Now go and authorize ScribeJava here:");
System.out.println(authorizationUrl);
System.out.println("And paste the authorization code here");
System.out.print(">>");
final String code = in.nextLine();
System.out.println();
System.out.println("And paste the state from server here. We have set 'secretState'='" + secretState + "'.");
System.out.print(">>");
final String value = in.nextLine();
if (secretState.equals(value)) {
System.out.println("State value does match!");
} else {
System.out.println("Ooops, state value does not match!");
System.out.println("Expected = " + secretState);
System.out.println("Got = " + value);
System.out.println();
}
// Trade the Request Token and Verfier for the Access Token
System.out.println("Trading the Request Token for an Access Token...");
final OAuth2AccessToken accessToken = service.getAccessToken(code);
System.out.println("Got the Access Token!");
System.out.println("(The raw response looks like this: " + accessToken.getRawResponse() + "')");
System.out.println();
但问题是我怎样才能获得授权码,任何人都可以告诉我授权码是什么?
答案 0 :(得分:1)
到目前为止,您处于第1步:即创建授权URL,告知服务器应用程序(详细信息,如客户端ID,重定向URL等)。
在任何OAuth流程中,共有3方参与
假设我是您管理的网站上的GitHub用户。您的网站想要访问驻留在GitHub上的数据。如果没有access-token
,您的网站无法直接从GitHub检索我的任何受保护数据。
如何获得此访问令牌?
client-secret
access-token
,首先它通过发送标识参数通过authorization-url
向GitHub标识自己。
在您的情况下,您需要将authorization-url
粘贴到浏览器中才能继续。在制作时,您的网站应将用户重定向到authorization-url
。redirect_url
param中指定的网址以及request-token
(又名authorization-code
)request-token
,将服务器调用GitHub并与access-token
交换access-token
,它就可以向GitHub请求我的受保护数据。