java中如何实现qq登录与微博登录,如何从零开始对接第三方登录(Java版):QQ登录和微博登录(2)...

到了这一步基本上涉及第三方的就结束了,是不是很简单?后面无非就是如何插入、如何存放token、写入session等。

有几点注意事项:

相关文档官网已经写得非常细了,但是相当乱:

7939.gif

这个我就不详细讲了,登录 很容易找到相关入口,注册成为开发者,实名认证,一模一样的。

点击链接 创建web应用:

72f527d41f28c9cf92b7f8bcbcb1b852.png

创建成果后建立相关信息qq java,主要是上面那些:

b5041149d9c32d1f51f2cf0a54b5739e.png

我就不一一介绍了,都看得懂。

微博注册不需要网站一定要备案,但对网站本来有必定要求,不能弄一个空壳网站让别人去审核,肯定审核不通过的。

有关微博的对接可以参考我好几年前写的一篇文章:【新手入门篇】新浪微博应用开发之Java入门篇

微博视觉素材下载在这里,页面合适位置放一个登录图标:

function weiboLogin()

{

let weiboAppId = '432432';

let weiboAuthPath = 'http://www.test.com/authweibo';

openWindow(`https://api.weibo.com/oauth2/authorize?client_id=${weiboAppId}&response_type=code&redirect_uri=${encodeURIComponent(weiboAuthPath)}`);

}

微博登录有一个好处qq java,第一次登录必须授权,后面第二次登录时只会一闪而过自动就登录失败了,都不需要点一下,用户感受非常好,看下图:

dac44ddc1f5ef821aef0da8f56de2e20.gif

登录成功会返回一个code,根据code换取accessToken:

String params = "client_id=" + appId

+ "&client_secret=" + appSecret

+ "&grant_type=authorization_code"

+ "&redirect_uri=" + URLUtil.encode(authPath)

+ "&code=" + code;

// 用code换取accessToken

String result = HttpsUtil.post("https://api.weibo.com/oauth2/access_token", params);

Map resp = JsonUtil.toObject(result, new TypeReference>(){});

Integer errorCode = (Integer)resp.get("error_code");

String error = (String)resp.get("error");

String errorMsg = (String)resp.get("error_description");

if(errorCode != null && errorCode != 0) return new ErrorResult(errorCode, error + (errorMsg==null?"":errorMsg));

String accessToken = (String)resp.get("access_token");

String uid = (String)resp.get("uid"); // 这个uid就是微博用户的唯一用户ID,可以通过这个id直接访问到用户微博主页

int expires = (Integer)resp.get("expires_in"); // 有效期,单位秒

// 用uid和accessToken换取用户信息

String result = HttpsUtil.get("https://api.weibo.com/2/users/show.json?access_token="+accessToken+"&uid="+uid);

Map resp = JsonUtil.toObject(result, new TypeReference>(){});

errorCode = (Integer)resp.get("error_code");

error = (String)resp.get("error");

errorMsg = (String)resp.get("error_description");

if(errorCode != null && errorCode != 0) return new ErrorResult(errorCode, error + (errorMsg==null?"":errorMsg));

String nickname = (String)resp.get("screen_name");

// 微博180*180高清头像

String avatar = (String)resp.get("avatar_large");

String gender = (String)resp.get("gender");

gender = "m".equals(gender) ? "男" : ("f".equals(gender) ? "女" : "");

至此涉及第三方的东西都完了,剩下的就是用户自己存放到、写入token、保存session、以及校验接口开发了。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/sanxing/article-120739-2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值