第三方qq登陆(支持扫码)

微信网页扫码登录的实现   为了让用户登录网站的门槛更低,微信扫一扫登录变得越来越广泛,所以最近加紧赶制的项目中有用到这个功能,此篇文字的出发点基于微信开放平台已经配置好域名(80端口)并且认证成功获得app_id和secret并有权限调用微信的接口。好了,就先谈一谈微信扫码登录的整个流程吧。   第一步,我们必须得把二维码放在页面上显示。首先普及一下二维码是有失效时间以及失效状态的,一旦你扫过一次二维码或者... 阅读详情

1 导包

	<dependency>
		<groupId>net.gplatform</groupId>
		<artifactId>Sdk4J</artifactId>
		<version>2.0</version>
	</dependency>

2 配置

最好查看qq给出的demo例子
创建 qqconnectconfig.properties放在resources根目录下
redirect_URI = http://javatv.cn/loginAfter为登录之后重定向跳转的地址

app_ID = 这里填域名id
app_KEY = 这里填域名的key
redirect_URI = http://域名/loginAfter
scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr
baseURL = https://graph.qq.com/
getUserInfoURL = https://graph.qq.com/user/get_user_info
accessTokenURL = https://graph.qq.com/oauth2.0/token
authorizeURL = https://graph.qq.com/oauth2.0/authorize
getOpenIDURL = https://graph.qq.com/oauth2.0/me
addTopicURL = https://graph.qq.com/shuoshuo/add_topic
addBlogURL = https://graph.qq.com/blog/add_one_blog
addAlbumURL = https://graph.qq.com/photo/add_album
uploadPicURL = https://graph.qq.com/photo/upload_pic
listAlbumURL = https://graph.qq.com/photo/list_album
addShareURL = https://graph.qq.com/share/add_share
checkPageFansURL = https://graph.qq.com/user/check_page_fans
addTURL = https://graph.qq.com/t/add_t
addPicTURL = https://graph.qq.com/t/add_pic_t
delTURL = https://graph.qq.com/t/del_t
getWeiboUserInfoURL = https://graph.qq.com/user/get_info
getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info
getFansListURL = https://graph.qq.com/relation/get_fanslist
getIdolsListURL = https://graph.qq.com/relation/get_idollist
addIdolURL = https://graph.qq.com/relation/add_idol
delIdolURL = https://graph.qq.com/relation/del_idol
getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr
getRepostListURL = https://graph.qq.com/t/get_repost_list
version = 2.0.0.0

3 建包oauth2并扫描

<context:component-scan base-package="cn.itsource.oauth2" />

4 编写qqcontroller

@Controller
public class QQcontroller {
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private UserService userService;

    @RequestMapping("/qqLogin")
    public  void qqLogin(HttpServletRequest request, HttpServletResponse response){
//        response.setContentType("text/html;charset=utf-8");
        try {
            //重定向到qq的授权登录页面
            response.sendRedirect(new Oauth().getAuthorizeURL(request));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /***
     *  登录成功之后,它会自动跳转到域名http://javatv.cn/loginAfter
     *  需要配置hosts文件, 127.0.0.1 javatv.cn才能跳转到这里
     */
    @RequestMapping("/loginAfter")
    public  String afterLogin(HttpServletRequest request, HttpServletResponse response){
        try {
            AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);

            String accessToken   = null,
                    openID        = null;
            long tokenExpireIn = 0L;

            if (accessTokenObj.getAccessToken().equals("")) {
//                我们的网站被CSRF攻击了或者用户取消了授权
//                做一些数据统计工作
                System.out.print("没有获取到响应参数");
            } else {
                accessToken = accessTokenObj.getAccessToken();
                tokenExpireIn = accessTokenObj.getExpireIn();

                request.getSession().setAttribute("demo_access_token", accessToken);
                request.getSession().setAttribute("demo_token_expirein", String.valueOf(tokenExpireIn));

                // 利用获取到的accessToken 去获取当前用的openid -------- start
                OpenID openIDObj = new OpenID(accessToken);
                openID = openIDObj.getUserOpenID();

                System.out.println("欢迎你,代号为 " + openID + " 的用户!");
                request.getSession().setAttribute("demo_openid", openID);
                System.out.println("<a href=" + "/shuoshuoDemo.html" + " target=\"_blank\">去看看发表说说的demo吧</a>");
                // 利用获取到的accessToken 去获取当前用户的openid --------- end

                /***
                 *  自己的代码:获取qq信息
                 */
                System.out.println("==================start====================");
                String url = "https://graph.qq.com/user/get_user_info?access_token="
                        + accessToken + "&oauth_consumer_key=101543517" + "&openid=" + openID + "&format=json ";
                String json = restTemplate.getForObject(url, String.class);
                //反序列化
                ObjectMapper objectMapper = new ObjectMapper();
                HashMap map = objectMapper.readValue(json, HashMap.class);
                System.err.println(map);
                System.err.println(map.get("figureurl_qq_1"));
                /***
                 *      如果用户存在openId,说明用户之前登录过了,直接跳转到main.jsp
                 *      如果用户不存在,那么就说明用户第一次登录,需要保存到数据库,然后在跳转到main.jsp
                 */
                User user = new User();
                user.setOpenid(openID);
                User u = userService.queryByParam(user);
                if (u!=null){
                    return "main";
                }else {
                    user.setLoginName(UUID.randomUUID().toString());
                    user.setLoginPwd("123456");
                    user.setDelFlag(1);
                    userService.insert(user);
                }
                System.out.println("==================end====================");



                System.out.println("<p> start ----------------------------------- 验证当前用户是否为认证空间的粉丝------------------------------------------------ start <p>");
                PageFans pageFansObj = new PageFans(accessToken, openID);
                PageFansBean pageFansBean = pageFansObj.checkPageFans("97700000");
                if (pageFansBean.getRet() == 0) {
                    System.out.println("<p>验证您" + (pageFansBean.isFans() ? "是" : "不是") + "QQ空间97700000官方认证空间的粉丝</p>");
                } else {
                    System.out.println("很抱歉,我们没能正确获取到您的信息,原因是: " + pageFansBean.getMsg());
                }
            }
    } catch (Exception e){
        e.printStackTrace();
        }
        return "main";
    }
}

5 登录页面加入QQ登录

			<%--第三方登录--%>
			<div style="text-align: center">
				<img id="qqLogin" src="/img/qq.png" width="75" height="25">
			</div>

			//qq登录点击事件
			$("#qqLogin").click(function () {
				location.href="/qqLogin"
	        })

6 修改hosts配置文件

C:\windows\system32\drivers\etc
输入javatv.cn的时候跳转到127.0.0.1
127.0.0.1 javatv.cn

网站微信扫码登录总结 写着前面: 写博客即可以分享经验促进交流,又可以帮助自己梳理逻辑巩固知识。这是我的第一篇博客,写于职业之路的开端,希望自己以后可以坚持写下去 第三方网站微信扫码登录跳转总结微信扫码前端操作后端操作企业微信扫码总结 网站微信扫码登录从2014年的惊艳四座到如今的全网普及已经过了6年的时间,如今网站微信扫码登录靠着便捷、安全的特性成为了网站与用户的首选。第三方网页可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。同时微信拥有庞大且稳定活跃的用户基数,直接将我们的app接入到微信的生态可以免去复杂的 阅读详情

相关推荐

微信公众号扫码登陆Python版

基于python 实现公众扫码登陆 前提 申请公众号服务,配置相关信息,并在相关平台进行配置,就这么多东西 实现逻辑,使用临时临时二维码,带参数的二维码扫码登陆 流程,用户已经扫码关注,在登陆页面直接扫码登陆, 用户未关注,则需要点击关注后,直接登录, 我们使用带参数的场景值来区别是哪个用户进行扫码登陆 场景值用户可以自定义,但是必须是唯一的,我用的时间戳 我现在要做的功能,有账户绑定需求,并且是前后端分离的情况下, 流程1 当用户已经关注过,并且绑定账号,直接扫码登陆, 当用户已经关注过,未绑定,需要扫

zhplz123的博客 2289

QQ、微信登录扫码接入

5.根据access_token获取到openid,再根据openid获取微信用户信息。4.调取微信api获取access_token。1.需要企业的公众号号(服务号)

qq_20382175的博客 2493

向量库深度解析:选型、索引原理与生产实践

本文系统解析五大主流向量库(pgvector、Milvus、Weaviate、ChromaDB、Faiss)的定位、优缺点与适用场景,深入拆解FLAT、IVF、HNSW等核心索引原理,并重点分析Milvus的Compaction机制。针对数据治理场景,提供精准选型建议:中小规模优先pgvector或Weaviate,超大规模选择Milvus,开发测试推荐ChromaDB。核心索引推荐HNSW,兼顾检索速度与召回率。全文从理论到实践,为开发者提供清晰的向量库选型逻辑与生产落地指南。

a123147abc的博客 360

QRJDC搭建实现QQ扫码登录对接青龙对接傻妞

QRJDC搭建实现QQ扫码登录对接青龙对接傻妞

闲人 3420

我用 Claude Code 给 Spring Boot 老项目做了一次代码 Review:查出 4 类隐藏问题

接手 Spring Boot 老项目时,真正麻烦的往往不是编译报错,而是分散在业务代码中的空指针、N+1 查询、异常吞没和并发隐患。本文记录一次使用 Claude Code 辅助代码 Review 的完整流程,并给出提示词、Java 示例、修改方案和人工复核方法。

海波的专栏 396

学习利用ce修改游戏生命参数

易语言代码 游戏的简陋界面 用ce查找存储这个1000即生命值的内存地址(得先附加到目标程序上,点击左上角那个电脑按钮) 看到有很多值为1000的,但哪个是生命值呢?真相只有一个 我们点击一下打我这个按钮,看下面的ce界面上地址为004A65C0处的值变了,所以这个就是我们要找的生命值 接下来我们对生命值进行修改,修改为99

zsd747289639的博客 5万+

springBoot 实现 QQ扫码登录

springBoot 实现 QQ扫码登录

Miaotou1998的博客 2226

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5773

网页登录实现qq和微信扫码登录

使用openid判断用户是否已经在系统中注册,如果没有,则根据获取的用户信息创建新用户,并生成本地用户凭证token。在后台创建接口,用于前端发送请求获取qq或微信登陆二维码。前端在后续请求中发送token,后台验证token是否有效,并通过token获取用户信息。获取qq或微信开放平台的APPID和APPSECRET,创建应用,并获取授权域名。以上就是基于springboot和vue实现网页登录实现qq和微信扫码登录的示例。用户使用qq或微信扫描二维码,授权登陆并获取登陆凭证code。

qq_56921846的博客 2859

别再用LabelImg了!我手搓了一个C#“一站式”YOLO工具箱,标注训练推理全搞定

这个工具箱目前已经在两个小型产线项目中试用,反馈非常好。效率提升:原本需要 2 天完成的“数据准备 - 训练 - 验证”循环,现在缩短到了 2 小时。门槛降低:产线技术员经过 10 分钟培训,就能独立完成新产品的模型迭代。当然,它还有改进空间未来计划集成主动学习功能:自动筛选出置信度低的图片,推荐优先标注。支持多模型管理:方便在不同产品型号间快速切换。增加PLC 通信模块:直接在推理界面配置 IO 信号,实现真正的软硬联动。最后想说工具的本质是服务于人。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 441

#systemverilog# 之 event region 和 timeslot 仿真调度(二)例子

由于疫情的关系,一时半会回不了学校了。今天开始,哪怕在家也要克服惰性开始学习了。今天来个的想了很久但都犯懒而没动手的内容,就是关于仿真软件在跑systemverilog的时候,是如果通过将HDL代码分成5个区域来编译,从而实现用软件模拟硬件的运行结果的思想。 首先,是基础概念,systemverilog标准划分了仿真软件的5个跑仿真所要执行的区域,说白了就是规定了软件在跑代码的时候要把代码分成5类,放到5个堆栈里面分别跑,这样才能:明明在软件上是以顺序方式来执行代码的,却能“看似”像在硬件中那样的实现并行

那么菜的博客 1762

C#实现QQ扫码登录

第一步:获取AppID AppSecret(去QQ开放平台申请网址https://connect.qq.com/index.html/) 第二步:生成扫描二维码,获取code https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101463261&redirect_uri=回调地址&sta...

yuanfang5188的博客 4470

AI漫剧全套万能提示词合集

今天给大家整理一套已经跑通爆款漫剧的万能提示词库!覆盖:豆包剧本人设词 + 分镜生成词 + 即梦绘图词 + 动态优化词 + 防翻车固定词直接复制粘贴,新手也能做出稳定、高清、统一、有质感的AI漫剧!你是资深短视频漫剧编剧,擅长制作60秒竖屏爆款AI漫剧,请为我创作一集完整漫剧内容。要求:开头3秒高能抓眼,中段有冲突转折,结尾留强悬念钩子,节奏紧凑、适合短视频流量。首先生成固定统一人物人设:包含脸型、五官、发色、发型、穿搭、身材、气质、画风、光影细节,要求足够精细,保证全程角色不变脸。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1859

AbpVnext 扩展企业微信扫码登录(钉钉登陆、短信登陆、微信登陆等)Vue框架

abp vnext - ABP框架 - 开源Web应用程序框架!ABP 是一个开源应用程序框架,专注于基于 AspNet Core 的 Web 应用程序开发。 Don't repeat yourself,专注于自己的业务代码。

m0_72992974的博客 2424

PyTorch 面试题及参考答案(精选100道)

模块是 PyTorch 中用于自动求导的核心模块。它为张量上的所有操作提供了自动求导的功能。在深度学习中,反向传播是一种用于计算损失函数相对于模型参数的梯度的算法。通过梯度,我们可以使用优化算法(如随机梯度下降)来更新模型的参数,从而最小化损失函数。模块的主要作用就是自动计算这些梯度。当我们创建一个张量时,如果将其属性设置为True,那么 PyTorch 会跟踪该张量上的所有操作。在完成前向传播计算出损失函数后,调用方法,模块会自动根据链式法则反向传播计算出所有需要求导的张量的梯度。

大模型大数据攻城狮的专栏 1680

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

网页QQ,微信扫码登录

在做一些toc项目的时候不仅是需要用到手机号登录,有些是需要用到qq和微信扫码登录的场景那么下面我就举例qq微信扫码登录的步骤。

m0_49407241的博客 970

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

网站实现微信扫码登录

网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

记录工作开发中遇到的技术难点,方便自己查看,也希望可以帮助到他人... 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

09实现微信扫码认证登陆

09实现微信扫码认证登陆

欢迎阅读我的博客 2180

微信扫码登陆

出发点基于微信开放平台已经配置好域名(80端口)并且认证成功获得app_id和secret并有权限调用微信的接口。好了,就先谈一谈微信扫码登录的整个流程吧。   第一步,我们必须得把二维码放在页面上显示。首先普及一下二维码是有失效时间以及失效状态的,一旦你扫过一次二维码或者在某段时间内没有扫描页面上的二维码,该二维码就失效了。OK,微信官网给我们提供两种方式来显示二维码:1.后台发请求返回一个新...

u010963051的博客 1647

关于企业微信扫码登陆vue

企业微信扫码登陆官方文档 采用的是第一种(构造独立窗口登录二维码) 对于前端来说就步骤就是 页面展示二维码 => 用户扫码登陆点击确定 => 确定之后重定向自己配置的路径 => 企业微信会返回一个code => 前端截取code传给后台换取token ,话不多说上代码。 在其login页面 <template> <div class="lo...

qq_45366081的博客 2196

SpringBoot:微信授权扫一扫登陆整体流程超详细

在开始讲解微信登陆前先补一些知识点 Step1:常见互联网登陆方式 1.手机号或邮箱注册 优点: ​ 1)企业获取了用户的基本资料信息,利于后续业务发展推送营销类信息 ​ 2)用户可以用个手机号或者邮箱获取对应的app福利 注册送优惠券 ​ 3)反馈信息的时候方便,直接报手机号即可账户出问题,被盗等 缺点: ​ 1)步骤多 ​ 2)如果站点不安全,如站点被攻击,泄露个人信息,如手机号、密码等 ​ 3)少量不良企业贩卖用户信息,如手机号等 2.OAuth2.0一键授权登陆 例子:豆瓣:www.douban.c

q736317048的博客 2209

微信扫码登陆流程

微信登陆相关

yf18040578780的博客 2819

java集成微信扫码登录

java集成微信扫码登录 具体流程可以看微信官网的扫码登录文档 地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN 一、 前期准备 1、注册 微信开放平台:https://open.weixin.qq.com 2、邮箱激活 3、完善开发者资料 4、开发者资质认

小张哇的博客 7841

React 微信扫码登陆网页

微信开放平台注册开发者账号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。后端实现部分可以看下这篇大佬的文章。

hqin_520的博客 1394

【微信公众平台】扫码登陆

微信公众平台实现带参数二维码登陆和网页授权登陆

记录学习,感悟体会。 3607
上一篇: jvm优化
下一篇: redis订阅发布
hao9e
博客等级 码龄7年 189粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值