mtons.oauth2.provider.GithubProvider Maven / Gradle / Ivy
/*
+--------------------------------------------------------------------------
| Mtons [#RELEASE_VERSION#]
| ========================================
| Copyright (c) 2014, 2015 mtons. All Rights Reserved
| http://www.mtons.com
+---------------------------------------------------------------------------
*/
package mtons.oauth2.provider;
import com.alibaba.fastjson.JSONObject;
import mtons.oauth2.OauthUser;
/**
* Created by langhsu on 2017/9/3.
*/
public class GithubProvider extends AbstractOauth2Provider {
public GithubProvider (){
}
@Override
public String createAuthorizeUrl(String state) {
StringBuilder sb = new StringBuilder("https://github.com/login/oauth/authorize?");
sb.append("scope=user");
sb.append("&client_id=" + getClientId());
sb.append("&redirect_uri=" + getRedirectUri());
sb.append("&state=" + state);
return sb.toString();
}
@Override
public OauthUser getUser(String code) {
String accessToken = getAccessToken(code);
String url = "https://api.github.com/user?access_token=" + accessToken;
String httpString = httpGet(url);
JSONObject json = JSONObject.parseObject(httpString);
OauthUser user = new OauthUser();
user.setAccessToken(accessToken);
user.setAvatar(json.getString("avatar_url"));
user.setOpenId(json.getString("id"));
user.setNickname(json.getString("login"));
return user;
}
protected String getAccessToken(String code) {
StringBuilder urlBuilder = new StringBuilder("https://github.com/login/oauth/access_token?");
urlBuilder.append("client_id=" + getClientId());
urlBuilder.append("&client_secret=" + getClientSecret());
urlBuilder.append("&code=" + code);
String url = urlBuilder.toString();
String httpString = httpGet(url);
JSONObject json = JSONObject.parseObject(httpString);
return json.getString("access_token");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy