java中如何实现qq登录与微博登录,如何从零开始对接第三方登录(Java版):QQ登录和微博登录(2)...
到了这一步基本上涉及第三方的就结束了,是不是很简单?后面无非就是如何插入、如何存放token、写入session等。
有几点注意事项:
相关文档官网已经写得非常细了,但是相当乱:
这个我就不详细讲了,登录 很容易找到相关入口,注册成为开发者,实名认证,一模一样的。
点击链接 创建web应用:
创建成果后建立相关信息qq java,主要是上面那些:
我就不一一介绍了,都看得懂。
微博注册不需要网站一定要备案,但对网站本来有必定要求,不能弄一个空壳网站让别人去审核,肯定审核不通过的。
有关微博的对接可以参考我好几年前写的一篇文章:【新手入门篇】新浪微博应用开发之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,第一次登录必须授权,后面第二次登录时只会一闪而过自动就登录失败了,都不需要点一下,用户感受非常好,看下图:
登录成功会返回一个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
java中如何实现qq登录与微博登录,如何从零开始对接第三方登录(Java版):QQ登录和微博登录(2)...相关推荐
- 对接第三方平台JAVA接口问题推送和解决
对接第三方平台JAVA接口问题推送和解决 参考文章: (1)对接第三方平台JAVA接口问题推送和解决 (2)https://www.cnblogs.com/CreateMyself/p/7295879 ...
- java加按钮_如何从零开始对接第三方登录(Java版):QQ登录和微博登录
阅读本文约需要8分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了HashMap和TreeMap的知识,今天跟大家分享下对 ...
- 如何从零开始对接第三方登录(Java版):QQ登录和微博登录
前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...
- java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
[填空题]类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素.一个类的实现包括两部分:____和_____. 更多相关问题 [名词解释] 观叶树木 [单选] 开花时有浓郁香气的树种是 ...
- java 中张孝祥老师_谁有传智博客张孝祥老师的Java视频——必须是完整的
报告楼主,我有! 传智播客官网 itcast 传智播客J2EE全套视频教程,是目前覆盖面最广,项目最真实的视频教程 传智播客Java EE视频教程 <传智播客AJAX视频教程> <传 ...
- 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...
一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...
- java中super用来定义父类,定义子类必须使用的关键字是 在java中子类若要继承父类,需要使用的关键字是什么...
java定义接口时需要使用的关键字是 定义接口复使用的关键字是"interface",中文意思"接口.解释:通常接口都是制为了定义百某些规范,而在接口中只定义了方法,而没 ...
- java中OOD_还在傻傻分不清?3分钟快速认识Java中的OOA、OOD、OOP
在计算机专业中,Java专业是最常设的专业之一,在学习Java时,框架是重要的学习内容,你还在傻傻分不清吗?3分钟快速认识Java中的OOA.OOD.OOP.OOA:Object-Oriented A ...
- java中的轮子是什么意思_后端的轮子(一) - java后端开发的个人空间 - OSCHINA - 中文开源技术交流社区...
前言 首先,看看这个,想必大家对下面这种简历看得比较多了吧? 精通JAVA,Python,熟练掌握C++ 精通Redis,Memcached,Mysql 精通Nginx配置,模块开发 精通Kafka, ...
最新文章
- mybatis 中#与$的区别
- 我的vExpert之路-传递正能量!
- python中 getnode用法_node.js 爬虫入门总结
- 执行应用程序出现: No such file or directory
- Quartz Scheduler插件–隐藏的宝藏
- linux md5sum命令
- Python入门系列(1):如何使用Sublime text开发Python
- Redis Cluster 伪集群的搭建
- 《Puppet权威指南》——第1章 运维工程师的利器——自动化运维工具
- Unity3d之HashSlash学习笔记(一)--角色属性类的构架
- linux命令mysql启动,linux中mysql启动服务命令
- 城市规划图例符号_城市规划图例符号精编版
- 一款桌面整理软件——Fences
- 基站位置查询系统_如何查看附近信号基站的位置
- 【typecho插件】typecho邮箱插件LoveXXzhoudedi祝福邮箱typecho插件、小周
- 移动营销必备:App自动绑定的五大场景赋能
- MYSQL从简单查询到高级查询(一)
- 微信公众号使用H5获取地理位置信息并定位
- uniapp和vue的区别
- android模拟器检测方案优化,逍遥模拟器优化方案 - 新手引导 - 逍遥安卓论坛 - Powered by Discuz!...
热门文章
- 共享 || 109份2019年品牌行业报告
- 大白话之辩论DDD,阿里面试中台化理解
- 在html中有两种类型的标签 它们分别是,VB习题及题解答.doc
- Singleton 设计模式
- 一个百度员工的离职感悟
- 旅馆顾客统计(静态成员)
- spark报Got an error when resolving hostNames. Falling back to /default-rack for all
- 卸载亚信科技安全助手
- 全球及中国高速公路行业未来建设规划与十四五盈利前景分析报告2022版
- 惠普触控板使用指南_hp触摸板开关_hp电脑触摸屏开启快捷键