技术介绍
springboot mybaits bootstrap jQuery
功能介绍
前端主要包含:登陆 注册 个人中心 博客 随笔 标签 分享
后端主要功能:统计分析 栏目管理 文章管理 评价管理 角色管理 主题 系统配置
实现代码
核心代码
public class OauthBaidu extends Oauth {
private static final Logger LOGGER = LoggerFactory.getLogger(OauthBaidu.class);
private static final String AUTH_URL = "https://openapi.baidu.com/oauth/2.0/authorize";
private static final String TOKEN_URL = "https://openapi.baidu.com/oauth/2.0/token";
private static final String USER_INFO_URL = "https://openapi.baidu.com/rest/2.0/passport/users/getInfo";
public static OauthBaidu me() {
return new OauthBaidu();
}
public OauthBaidu() {
setClientId(OathConfig.getValue("openid_baidu"));
setClientSecret(OathConfig.getValue("openkey_baidu"));
setRedirectUri(OathConfig.getValue("redirect_baidu"));
}
public String getAuthorizeUrl(String state) throws UnsupportedEncodingException {
Map params = new HashMap<>();
params.put("response_type", "code");
params.put("client_id", getClientId());
params.put("redirect_uri", getRedirectUri());
if (StringUtils.isNotBlank(state)) {
params.put("state", state);
}
return super.getAuthorizeUrl("https://openapi.baidu.com/oauth/2.0/authorize", params);
}
public String getTokenByCode(String code) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException {
Map params = new HashMap<>();
params.put("code", code);
params.put("client_id", getClientId());
params.put("client_secret", getClientSecret());
params.put("grant_type", "authorization_code");
params.put("redirect_uri", getRedirectUri());
String token = TokenUtil.getAccessToken(super.doPost("https://openapi.baidu.com/oauth/2.0/token", params));
LOGGER.debug(token);
return token;
}
public String getUserInfo(String accessToken) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException {
Map params = new HashMap<>();
params.put("access_token", accessToken);
return super.doPost("https://openapi.baidu.com/rest/2.0/passport/users/getInfo", params);
}
public JSonObject getUserInfoByCode(String code) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException {
String accessToken = getTokenByCode(code);
if (StringUtils.isBlank(accessToken)) {
return null;
}
String userInfo = getUserInfo(accessToken);
JSonObject dataMap = JSON.parseObject(userInfo);
dataMap.put("access_token", accessToken);
LOGGER.debug(JSON.toJSonString(dataMap));
return dataMap;
}
}
运行效果



