微信公众号授权登录(asp.net + angular)
微信是时下最火的,上面有数以亿计的用户,如果能接入微信将大大减低注册门槛,当然,接入微信登录是有门槛的。微信登录一般有两个,一个是微信开放平台授权登录,一个是微信公众号授权登录,两者都需要认证才可以继续开发,开放平台开发流程与新浪微博授权差不多,后者开发流程稍有不同,而且可以用测试号进行开发。下面暂时以公众号为例说明。
注册账号,建立公众号
不管怎么样,得先注册一个微信公众号,如果有基础的话,可以在进行开发者资质认证,获取更多高级接口。
认证/选择测试账号
完成开发者资质认证可以获取很多高级接口权限,当然认证需要RMB还需要营业执照等,门槛挺高的,所以开发阶段我们一般选择用测试号来进行开发调试。新建测试号位置为登录后选择开发者工具,在里面选择公众平台测试账号,再扫码进去即可获取到一个为期一年的具备绝大部分接口的测试账号。
修改接口配置信息
在测试号中填写接口配置信息,用于响应微信官方服务器发送的token验证(注意:此时是修改测试账号配置,正式账号不需要修改,而且URL是一个外网能访问的地址,可以是aspx也可以是ashx,只要有返回值即可)
下面介绍一下验证流程
我们填写完URL和Token后,微信官方服务器将访问我们所填写的URL,访问过程中其服务器自动带上几个参数,我们在代码中接收参数并进行加密排序等,再把它发过来的随机字符串原样返回,如果微信服务器检测到发出的随机字符串和返回的字符串一致,则完成验证。(注意:如果实在不懂如何加密排序,可以直接把随机字符串原样返回,不做判断,当然这样安全性不高)
加密流程
新建一个web窗体或一般处理程序(两个都差不多的),判断请求参数echoStr是否为空,如果为空直接忽略即可,如果不为空,再把请求参数signature、timestamp、nonce一一取出来,同时把配置文件中配置的Token读取出来(Token是测试账号接口配置信息里面填写的Token),然后把token、timestamp、nonce拼接成数组,再排序一下(Array.Sort(arrTmp)),再把排序后的数组组合成字符串,最后对该字符串进行SHA1加密,如果加密后的代码与签名signature一样,则代表通过验证,可以放心把随机参数echoStr返回,不相等要么是代码写错要么不是微信官方服务器的请求,忽略该请求。
具体代码
修改JS接口安全域名
因为接口配置与js接口安全域名修改位置差不多,所以在这里直接修改安全域名。安全域名是指将来要用jssdk的页面域名
配置授权回调页面域名
在测试账号体验接口中找到网页服务->网页账号,然后修改器域名回调地址(回调域名是指在该域名下均可以进行登录授权)
引导用户授权
添加跳转去授权页面的链接,一般可以在文章、对话和菜单中添加,为了方便,我直接在菜单中添加(关于如何添加自定义菜单,可以在开发者工具中选择在线接口调试工具,在里面进行配置)。链接的地址格式如下
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
其中APPID为测试账号的appid,REDIRECT_URI为回调地址(授权域名下的,注意回调地址要填写编码后的url),SCOPE为权限选择(有两种选择,一种是snsapi_base,snsapi_userinfo,一般选择后者),STATE是自定义参数,可以不改,其他原样不变。
授权成功后回调地址将带上code参数和state参数。
根据code换取access_token
根据回调地址的code换取access_token(票据),需要的参数为appid和appsecret,具体代码如下(注意code只能用一次,第二次会报错,其次,code在手机端获取,复制后粘贴到电脑测试)
返回值包括access_token和openid等
根据openid获取用户信息
根据票据和用户openid获取用户详细信息(注意openid与unionid不同,unionid是全局唯一,而openid只能做到公众号内唯一,如果需要绑定全网用户,建议根据openid获取unionid再做处理),具体代码如下
前台代码
参考:
https://mp.weixin.qq.com
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
微信公众号授权登录(asp.net + angular)相关推荐
- vue移动端项目微信公众号授权登录
前言 在我们做移动端项目时, 很多功能是以登录后才能进行后续的操作, 并且许多pc端的网页都有微信扫码登录功能, 为了做到pc与移动端统一, 往往移动端项目需要添加微信登录功能, 那么为什么手机端不能 ...
- Java在Web端微信公众号授权登录
Java在Web端微信公众号授权登录 1.需要在微信开发平台配置 url:是自己服务中的微信需要推给你的地址(需要使用二级域名,可以去添加链接描述)购买9块钱1个月使用权或者白嫖都可 token 这个 ...
- H5 微信公众号 授权登录 前后端分离篇(资料准备+前端01)
实现微信公众号授权登录,很简单,但是注意的地方要细心,小伙伴们跟着我的思路一起实现吧! 文章目录 一.帐号申请 1. 正式账号 2. 测试帐号 二.微信文档 2.1. 文档主页 2.2. 授权流程 2 ...
- 【SpringBoot学习】46、SpringBoot 集成 Uniapp 实现微信公众号授权登录
文章目录 一.公众号环境搭建 二.Spring Boot 集成微信公众号 1.application.yml 微信配置 2.控制层接口 三.Uniapp 实现授权登录 一.公众号环境搭建 本篇文章使用 ...
- uni-app 对FastAdmin微信公众号授权登录实例
uni-app 对FastAdmin微信公众号授权登录实例 uniapp 微信公众号授权登录代码 跳转获取code 提交fastadmin 第三方登录插件 进行登录验证 存储token onLoad( ...
- RuoYi-App移动版(uni-app)微信公众号授权登录
前言 略 uni-app 未提供微信公众号授权登录 uni.login是一个客户端API,统一封装了各个平台的各种常见的登录方式,包括App手机号一键登陆.三方登录(微信.微博.QQ.Apple.go ...
- Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息
引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...
- 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)
简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...
- uniapp微信公众号授权登录,本地调试
在项目如何集中微信公众号授权登录 后端跳转获取code码,最后拼接, //保留登录前的页面参数.为了不让参数传到后台,并且在微信授权链接带来带去,可以将参数和登录前的地址存到本地缓存let route ...
最新文章
- docker 从harbor 拉取镜像慢_Harbor丨使用的正确姿势
- 编程软件python是什么-现在编程软件有哪些?常用是哪一种?
- Text-CNN-文本分类-keras
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
- 【强化学习】DQN及其延伸算法
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数
- C#编译和运行过程图例
- 加量不加价!极速人脸检测库libfacedetection升级v3版,新增五点检测
- 把偷快递的贼炸到怀疑人生!不愧是NASA工程师,奇思妙想
- Zabbix 优缺点分别有哪些?
- 如何测试WiFi路由器小包性能
- 火电厂给水串级控制系统仿真
- 安卓系统实现播放器变速功能
- 你知道战国四大名将都有谁吗
- CF235C Cyclical Quest
- Two Birds with One Stone: Series Saliency for Accurate and Interpretable Multivariate Time Series...
- HTML5 Canvas核心技术迷你书
- python怎么做图表好看_如何制作有趣好看的数据可视化图表?
- 929. 独特的电子邮件地址
- 【数学建模】基于matlab模拟疫情SEIRS模型【含Matlab源码 2214期】