网页端扫码通过公众号实现微信授权登录

news/2024/11/19 12:22:50/

1.参考开发文档:

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#0

2.先调起微信授权页面,获取code。(如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE)。用如下连接生成二维码,微信扫码可以调起授权页面。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbf1f83d35ba69d&redirect_uri=http://www.dd.com.cn&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect

3.用户同意后回调redirect_uri配置的接口,获取code:

https://www.dd.com.cn/?code=001Ut4Ha1yuI3F05mEJa1DlLq64Ut4HG&state=STATE

4.通过access_token接口,传入code,获取到用户的openId,unionid和access_token信息:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxbf1f83d3a69d&secret=c28917fc609f3a6f6780b60702ff0d89&code=001Ut4Ha1yuI3F05mEJa1DlLq64Ut4HG&grant_type=authorization_code
{"access_token": "67_xtTNGAMFQw6r5HVWajUmw5P1E7L9rTvF6YeFSKZwxMr3RdSww00WoM6y8dGv6rQdVEZAtV8nLtGID0MI4-hM74h0tWD941nYdbSULG46QgI","expires_in": 7200,"refresh_token": "67_y1jqaGqpojn2IzVzvGBdGIuH4t_Iy1PLSE_ccR-2_dkz8hOCRpiEMrCfGaY4UP0EDqvQlLJf2wwusjadbetZhUcskk_MlCzhRd-suUckqms","openid": "oFVCr549_IkCU_u46_v0","scope": "snsapi_userinfo","unionid": "oSBoT6StcN2EHswnOunQ0XVx0"
}

5.通过这个接口,传入openId,access_token参数,获取用户的基本信息:

https://api.weixin.qq.com/sns/userinfo?access_token=67_xtTNGAMFQw6r5HVWajUmw5P1E7L9rTvF6YeFSKZwxMr3RdSww00WoM6y8dGv6rQdVEZAtV8nLtGID0MI4-hM74h0tWD941nYdbSULG46QgI&openid=oFVCr549_IvbcT3iZskCU_u46_v0&lang=zh_CN
{"openid": "oFVCr549_IT3iZskCU_u46_v0","nickname": "ooo","sex": 0,"language": "","city": "","province": "","country": "","headimgurl": "https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/vdR2Ria3VobffzGBi8NZUIEdaiat4fwhzNzURwFQu7K2o1RI33yibibJkO9GjWQJY2eibCw4oFMeWM1yvUYCEiaQ\/132","privilege": [],"unionid": "oSBoT6WGswnOunQ0XVx0"
}

http://www.ppmy.cn/news/98588.html

相关文章

【五】设计模式~~~创建型模式~~~单例模式(Java)

【学习难度:★☆☆☆☆,使用频率:★★★★☆】 5.1. 模式动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一…

五种IO模型

本文分享的是理解五种IO模型的基本概念, 重点是IO多路转接。 什么是IO 其实我们在读写数据的时候,比如使用了write、read、recv、send等等函数,本质是对数据的拷贝。即在写的时候,将数据拷贝到了TCP协议的发送缓冲区中。在读的时候&#xff…

Linux|奇怪的知识|一次性任务at命令的使用

前言: at命令是Linux的一个专有命令,该命令是旧的计划任务atd服务的客户端命令(at命令是c/s形式的软件套件里的client,客户端),主要的用处就是灵活制定一个工作计划,特定时间自动完成你所设定的…

springboot缓存

1. 认识缓存 一级缓存 - 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质 - 使用缓存可以有效的减少低速数据读取过程的次数,提高系统性能 Service public class BookServiceImplCache implements BookService {Autowiredprivate BookDao book…

数据结构之线性表(bsd, sys/queue.h)

数据结构之线性表 Author:Once Day Date:2023年5月27日 参考文档: Linux内嵌链表(sys/queue.h)详解_tissar的博客-CSDN博客嵌入式大杂烩周记第 3 期:sys/queue.h - 知乎 (zhihu.com)queue(7) - Linux manual page (man7.org)queue(3) - Op…

Pytest运行指定的case,这个方法真的很高效……

Pytest运行指定的case 在测试工作中,当我们写了较多的cases时,如果每次都要全部运行一遍,无疑是很浪费时间的,而且效率低下。 但是有一种方法可以帮助你快速地运行指定的测试用例,提高测试效率,那就是使用…

myql的三种删除方式:delete truncate drop

前言 在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同,接下来我们具体来看。 1.delete detele 可用于删除表的部分或所有数据,它的使用语法如下: delete …

深度学习之卷积神经网络(CNN)

大家好,我是带我去滑雪! 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的前馈神经网络,主要用于图像和视频识别、分类、分割和标注等计算机视觉任务。它主要由卷积层、池化层、全连接…