微信,微博,QQ,这是现在目前用的最多的手机 APP,我们做产品哪能不跟他们不沾边,对于登录,我想谁也不想要多少个帐号密码,根本记不住!

为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注册的的需求也就由此而诞生

1、微信

1) 微信登录也是最坑人的,需要花300大洋成为开发者账户,没办法谁让微信用户群体大呢所以也就只好认了;然后登录网站后台需要创建网站应用,填写授权回调域(登录网站的域名)只填写域名即可

申请地址: https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN

2)查看微信提供的接口,写java代码

public void wx() {

try {

response.sendRedirect("https://open.weixin.qq.com/connect/qrconnect?appid="

+ ShareLoginDict.WEIXINKEY.getState()

+ "&redirect_uri="

+ URLEncoder.encode(ShareLoginDict.WEIXINURL.getState())

+ "&response_type=code&scope=snsapi_login&state=66666#wechat_redirect");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public Result userwx(String return_code) {

Result result = new Result();

Map token = (Map) WeiXinAPI

.getToken(return_code);

if (token != null && token.get("access_token") != null) {

Map user = (Map) WeiXinAPI

.getWxUser(token.get("access_token").toString(),

token.get("openid").toString());

if (user != null) {

result.addModel("openid", user.get("openid"));

result.addModel("nickname", user.get("nickname"));

result.addModel("headimgurl", user.get("headimgurl"));

result.addModel("data", "data_success");

}else{

result.addModel("data", "data_null");

}

}else{

result.addModel("data", "data_null");

}

return result;

}

当用户通过微信登录时,调用微信接口获取用户接口返回微信端的openid,昵称,头像;然后将此信息存入到浏览器的cookie中,当用户浏览其他信息时,辨别如果是用户是用微信登录的,拦截器直接从cookie中获取用户的信息显示昵称和头像,并同时判断该openid是否和数据库中用户做绑定,如果没有绑定提示用户注册。

2、qq登录

1)qq互联创建应用

接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权。

申请appid和appkey的用途

appid :应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。

appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。

申请地址: http://connect.qq.com/intro/login/

2)查看QQ提供的接口,写java代码

public void qq() {

try {

response.sendRedirect("https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="

+ ShareLoginDict.QQKEY.getState()

+ "&redirect_uri="

+ ShareLoginDict.QQURL.getState() + "&scope=get_user_info");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public Result userqq(String return_code) {

Result result = new Result();

Map token = (Map) QQAPI

.getToken(return_code);

if (token != null && token.get("access_token") != null) {

Map tokenme = (Map) QQAPI

.getTokenMeOpenId(token.get("access_token").toString());

if (tokenme != null && tokenme.get("openid") != null) {

Map user = (Map) QQAPI

.getQqUser(token.get("access_token").toString(),

tokenme.get("openid").toString());

if (user != null) {

result.addModel("openid", tokenme.get("openid"));

result.addModel("nickname", user.get("nickname"));

result.addModel("figureurl", user.get("figureurl"));

result.addModel("data", "data_success");

}else{

result.addModel("data", "data_null");

}

}else{

result.addModel("data", "data_null");

}

}else{

result.addModel("data", "data_null");

}

return result;

}

当用户通过QQ登录时,调用QQ接口获取用户接口返回QQ端的openid,昵称,头像;然后将此信息存入到浏览器的cookie中,当用户浏览其他信息时,辨别如果是用户是用微信登录的,拦截器直接从cookie中获取用户的信息显示昵称和头像,并同时判断该openid是否和数据库中用户做绑定,如果没有绑定提示用户注册。

3 微博登录

1)微博创建应用

申请地址:http://open.weibo.com/authentication

2)查看微博提供的接口,写java代码

public void wb() {

try {

response.sendRedirect("https://api.weibo.com/oauth2/authorize?client_id="

+ ShareLoginDict.WEIBOKEY.getState()

+ "&redirect_uri="

+ ShareLoginDict.WEIBOURL.getState()

+ "&response_type=code");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public Result userwb(String return_url, String return_code) {

Result result = new Result();

Map token = (Map) WeiBoAPI.getToken(

return_url, return_code);

if (token != null && token.get("access_token") != null) {

Map user = (Map) WeiBoAPI

.getWbUser(token.get("access_token").toString(),

token.get("uid").toString());

if (user != null) {

result.addModel("name", user.get("screen_name"));

result.addModel("pic", user.get("avatar_large"));

result.addModel("idstr", user.get("idstr"));

result.addModel("data", "data_success");

}else{

result.addModel("data", "data_null");

}

}else{

result.addModel("data", "data_null");

}

return result;

}

当用户通过微博登录时,调用微博接口获取用户接口返回微博端的idstr,昵称,头像;然后将此信息存入到浏览器的cookie中,当用户浏览其他信息时,辨别如果是用户是用微信登录的,拦截器直接从cookie中获取用户的信息显示昵称和头像,并同时判断该openid是否和数据库中用户做绑定,如果没有绑定提示用户注册。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

java可以微信qq同时登陆_java实现 微博登录、微信登录、qq登录实现代码_java_脚本之家...相关推荐

  1. 下面我这个方法可以实现限制某些QQ号登陆,而没有被限制的QQ号可以登陆,不需要借助任何工具。...

    下面我这个方法可以实现限制某些QQ号登陆,而没有被限制的QQ号可以登陆,不需要借助任何工具. 第一种:如果只希望某些QQ号可以登陆 用希望不受限制的QQ登陆,然后打开QQ安装目录,找到"Wi ...

  2. java实现微信、手机号登陆_Java后端解密微信小程序手机号数据

    小程序端登录后,得到登录时获取的 code(仅可使用一次) App({ onLaunch: function () {//登录 wx.login({ success: res=>{//发送 re ...

  3. java qq ui界面_java swing 创建一个简单的QQ界面教程

    记录自己用java swing做的第一个简易界面. LoginAction.java package com.QQUI0819; import javax.swing.*; import java.a ...

  4. android仿微信发布动态功能,Android 类似微博、微信展示动态(Feed)的WeiBoLayout

    仿微博.微信QQ,包含展示动态(Feed)图片,不同数量不同布局的GridView和识别包含超链接.#字话题.@人的文本效果. WeiBoLayout中的FeedGridView是根据显示子View的 ...

  5. java 模拟qq空间登陆_java最新完美实现模拟登录QQ登录QQ空间获取说说

    package com.pengliu.config; import com.pengliu.util.http.HttpService; /** * desc: 全局公共属性配置 */ public ...

  6. 王者荣耀微信登陆不了服务器,王者荣耀微信区怎么登陆不了 王者荣耀微信区怎么登不上...

    王者荣耀元旦积分版V1.16.5.15 安卓版 类型:角色扮演大小:323M语言:中文 评分:7.6 标签: 立即下载 王者之路,带他一路超神.今天有不少玩家反映说在微信登陆不上游戏,突然460,到底 ...

  7. 微信电脑客户端登陆_电脑端的微信只能开一个?简单操作就能随意开

    微信已经成为工作和生活的必备交流工具,每个人几乎都拥有微信号,而且有些人还会注册两个或多个,用以区分工作和私人. 但同时登陆多个账号却成为了难题,现在手机上多开已经很方便,而在电脑上默认只能登录一个, ...

  8. java数据库易错程序题_JAVA程序改错 (易错题)(示例代码)

    1 JAVA程序改错2 1.3 abstract className {4 privateString name;5 public abstract booleanisStupidName(Strin ...

  9. java的iterator接口_java Iterator接口和LIstIterator接口分析_java_脚本之家

    java  Iterator接口和LIstIterator接口分析 目录 1.Iterator接口 2.ListIterator 3.Iterator和ListIterator的区别 正文 在继续看A ...

最新文章

  1. HarmonyOS系统概述
  2. 2018新秀杯a城轨司机调度_城市轨道交通行车调度问题与优化方式研究
  3. python 爬虫实例 电影-Python爬虫入门实战之猫眼电影数据抓取(实战篇)
  4. DIV层跟随鼠标位置显示提示
  5. python 声明变量类型_python基础学习03数据类型和变量
  6. Java 1.8 HashMap源码探究
  7. 通常也是32位的HTML5
  8. 制度化规范化标准化精细化_管理技巧:为什么说企业制度化管理势在必行?好处太多了...
  9. 关于README的内容
  10. QLayout的属性介绍
  11. 有了漏洞扫描器,如何用好?一点不成熟的小总结
  12. 百度地图api vue集成模板收录
  13. Dart基础第4篇:运算符、条件判断、类型转换
  14. linux目录分配独立磁盘空间,Linux 分配/home的磁盘空间给根目录
  15. java移位运算符有哪些_java中有三种移位运算符
  16. Alexnet输入大小227x227能否调整,kernel_size偶数有什么影响。
  17. java里面获取map的key和value的方法
  18. Java程序员如何月薪达到两万,需要技术水平达到什么程度?
  19. 字符串相似度比较工具
  20. Virtuoso: 最全安装(IC618,IC617等), 问题解决

热门文章

  1. 酷播2 android,酷播影音播放器手机版
  2. Python批量处理方法
  3. 【iOS】UITextField中关于粘贴Paste操作的一些小发现
  4. 计算机辅助教学系统状况,计算机辅助教学系统组成.pptx
  5. Python共享单车数据的OD识别与社区发现(TransBigData+igraph)
  6. 万全系列服务器,联想7款万全服务器
  7. 特征融合 Pytorch concat串连两个预训练特征
  8. 适合中国程序员的保命教材——《程序员羊皮卷》书评(7)
  9. 7-211 正常血压
  10. 360杀毒抢鲜版64位 v5.0.1.5044A 官网免费版