机缘
我们练习的项目网站,在登陆方面要集成第三方登陆,去各个官方网站找下说明文档,好家伙,要么十年不更新文档,要么门槛比上帝都高!最终选择了百度登陆,虽然网站正式入口关闭了,但可以直接访问!
链接:百度开放平台
记下api key 和secret key 还有要设置回调地址,后面要用。
过程
官方文档不仅晦涩难懂,打死我也看不懂(智商堪忧的新手;
哈哈!没错,我还有杀手锏,就是justauth项目:项目地址
简单介绍下,该项目集成了几十种第三方登陆,傻瓜操作,让新手也可以完全胜任,我的是ssm项目,下面放上我的代码,分步解释下。
首先导入依赖:
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>1.16.5</version>
</dependency>
下面的方法就是利用你的配置信息,生成一个你自己的授权登陆的地址,然后重定向过去。
AuthRequest authRequest = getAuthRequest();//这个get方法如果单蠢配置一种的话可以写死
String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
response.sendRedirect(authorizeUrl);//重定向到拼接的授权地址
下面就是百度的上面创建应用的信息复制粘贴就可以
private AuthRequest getAuthRequest() {
return new AuthBaiduRequest(AuthConfig.builder()
.clientId("GbGrU9WTU9qG0wfsxPxG4Xhv")
.clientSecret("2vkGPGykP4em5NLUqGBa8Qb7svNnnvbL")
.redirectUri("http://localhost:8080/anticipation_Novel/oauth/callback/baidu")
.build());
下面百度会回传个状态,我们不管可以不管原因,直接扔到工具里就可以拿到信息了。
public Object callback(AuthCallback callback) {
AuthRequest authRequest = getAuthRequest();
AuthResponse response = authRequest.login(callback);
}
response里的信息大概长这样
{
"code":2000,
"data":{
"avatar":"http://himg.bdimg.com/sys/portrait/item/1ea2e5878cxxxe4b8bf4882.jpg",
"gender":"MALE",
"nickname":"凌***丿",
"rawUserInfo":{
"birthday":"2009-04-05",
"openid":"oD0ag_m52Xxxxxx6wWP2Dbm1X",
"sex":"1",
"is_realname":"1",
"portrait":"1ea2e5878cxxx4b8bf4882",
"is_bind_mobile":"1",
"blood":"2",
"username":"凌***丿"
},
"source":"BAIDU",
"token":{
"accessToken":"121.7f063a00b80xxxP8H6YxcJqD.C3r33w",
"expireIn":2592000,
"refreshToken":"122.b8cff99fe00cbxxxxZt-xSF906TGkEmPvdEn.IUdj0g",
"scope":"basic"
},
"username":"凌***丿",
"uuid":"oD0ag_m52xxxWP2Dbm1X"
}
}
憧憬
喜欢的同学记得点赞哦!