做关于微信上的小程序或者公众号,最重要的是——授权登录。

微信公众号不同于小程序,公众号是基于H5开发的网页版“程序”,而小程序则更像是一个微型的“APP程序”。微信公众号更得是为了营销。小程序则是为了和用户交互。

废话不多说,我们直接来看,如何开始做一个微信公众号

(1)申请公众号,开发者基本配置

这里就不做重复的叙述了。微信开发者文档上,写的很清楚 #微信开发者文档https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.htmlhttps://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html

(2)网页授权登录

在第一步完成之后,我们就要用户的授权登录了,因为是H5开发,所以要使用网页授权登录

#网页授权登录https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.htmlhttps://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html        在微信开发者文档上写的也挺详细的,下面我们根据他的文档,一步步去完成授权

(2.1)用户授权登录,获取code

引导用户在微信客户端打开如下页面,来获取code。https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

上面的链接中,有三个蓝色标记处,分别代表三个参数

(1)APPID:

这个是公众号基本配置中的开发者ID(AppID),如图

(2) REDIRECT_URI:

这个是你授权时返回的路径,也就是说,也就是在这里路径里有你需要的code,你需要在这个url中截取code。

下面是我获取code,和截取code的代码

        // 获取code   getCode() { var appid = 'wxa***************26'var url = 'https:/**************/index.html'this.code = '';this.code = this.getUrlCode().code // 截取codemapState({saveCode: this.code});console.log(this.code);localStorage.setItem('code', this.code)if (this.code == undefined || this.code == '' || this.code == null) { // 如果没有code,则去请求console.log('没有code');window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appid +'&redirect_uri=' + url + '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'}},// 截取url中的code方法getUrlCode() { var url = location.searchthis.winUrl = urlvar theRequest = new Object()if (url.indexOf("?") != -1) {var str = url.substr(1)var strs = str.split("&")for (var i = 0; i < strs.length; i++) {theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1])}}return theRequest},

(3)SCOPE:

这个是链接自带的参数,有snsapi_basesnsapi_userinfo可选

(2.2)通过code换取网页授权access_token

第一步之后,我们就获取了code值。将code发送给后端,后端调用接口链接,来换取access_token。

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

上面的链接中,也有三个蓝色标记处,分别代表三个参数

(1)APPID和SECRET

(2)CODE

code即是上面获取的code

后端代码如下

第二步完成会返回三个值,如上图红色方块中圈中的

 (2.3)刷新access_token(如果需要)

由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

(2.4)拉取用户信息(需scope为 snsapi_userinfo)

当2.1,2.2完成之后,我们就可以获取用户信息了。

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

ACCESS_TOKEN和OPENID参数,即是2.2中返回的数据

综上所述。微信公众号的网页授权登录,就已经完成了。

文章内容有什么错误的地方,望斧正,谢谢~

uni-app微信公众号(1)——网页授权登录相关推荐

  1. 微信公众号的网页授权如何在本地调试?

    调试微信公众号的网页授权时,要填写网页授权域名(如图1),否则授权的时候会提示redirect_uri参数错误(图2),可是我得在localhost先调试成功才能上传到实际的网站上吧,可是这里不支持l ...

  2. 微信公众号-测试号-网页授权

    微信公众号-测试号-网页授权 自己摸索几天,总算搞清楚了 第一步 登录微信公众号平台,开发者工具菜单进入公众平台测试账号 第二步 设置网页帐号 网页授权获取用户基本信息的域名,测试号是可以用ip和域名 ...

  3. 微信公众号第三方网页授权

    如果用户在微信公众号客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明 1.在微信公众号请求用户网页授权之前,开发者需要先到公众 ...

  4. 微信公众号 用户绑定 php,微信公众号开发——网页授权实现简化用户绑定

    本教程的学习条件: 了解微信公众号开发的基本知识.已经申请了微信公众号并设置了开发模式等.如果不了解,请先到微信官方平台学习 需要服务器端开发的基本技能,本文主要讲解流程,基本不涉及具体开发语言. 首 ...

  5. 微信公众号开发-网页授权——配置测试账号

    思路分析: 1.创建测试账号并且配置测试账号的授权回调域名. 2.由前端发起授权请求,微信收到请求后(若是首次打开,并且未关注公众号,微信会弹出授权页,提示用户授权)将重定向到请求url中配置的red ...

  6. uniapp开发微信公众号之网页授权

    目录 公众号网页授权的步骤 网页授权步骤 献上官网地址参考:公众号网页授权 先要拥有微信公众号,注意此处的公众号是服务号(需要认证),因为个人订阅号没有跳转外部链接的权限 项目要能被公网访问到(这样才 ...

  7. url 微信公众号开发 配置失效_微信公众号开发之授权登录

    一.UnionId和openId 微信登录最重要的两个返回信息,一个是UnionId,一个是OpenId.两者之间有着必然的联系. UnionID机制的作用说明:如果开发者拥有多个移动应用.网站应用和 ...

  8. 微信公众号扫码授权登录思路

    引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路:这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的内容 ...

  9. 微信公众号开发之授权登录(前端vue篇)

    前序: 由于之前一直是后端直接调用微信授权后,拿到相关信息后再返回给我(就是以前的前后端不分离),所以对微信公众号开发的微信授权登录还一直处于懵逼情况,直到今天有一个项目需要前后端分离,要前端主动去获 ...

  10. 微信公众号配置网页授权域名报错:无法访问xxx指向的web服务器或虚拟主机的目录

    记录一下这个困扰我一天的问题. 首先是下载那个txt,然后安装服务器的nginx(安装过程百度一下,非常简单),我是新建了一个文件夹,把这个txt放了进去 接下来配置nginx的访问路径,去编辑con ...

最新文章

  1. SegICP:一种集成深度语义分割和位姿估计的框架(附代码)
  2. idc 计算机行业数据分析,IDC:2015年计算机科技行业趋势预测
  3. 面试:为什么 https 比 http 更安全?
  4. 闲话网名之“jrfly331”
  5. Py中enumerate方法【转载】
  6. UITableVIew的性能优化-重用原理
  7. C语言文件操作 给M个数随机分组
  8. meta http-equiv=X-UA-Compatible content=IE=edge / 的说明
  9. 新年计划书...2012-01-01
  10. flutter打包出的问题
  11. Vue 中的 v-cloak 作用及用法
  12. element el-upload上传图片完成后隐藏上传
  13. mongoDB导出数据库所有集合内容到json文件
  14. VS2010中使用boost正则表达式库
  15. linux源码安装mysql
  16. 学习@浅墨_毛星云的【OpenCV入门教程】之四
  17. word表格内文字行间距调整方法
  18. python将电视剧按收视率进行排序_Python爬虫实现数据可视化,卫视实时收视率对比,就是如此强大!...
  19. 论文浅尝 | PAKDD2020 - 利用支持集中匹配信息的 few shot 事件分类方法
  20. 吴恩达《深度学习》课程介绍

热门文章

  1. java之Io-File类
  2. python kivy教程,Python Kivy 中文教程:安装(Windows)
  3. 实在抵不住张老师的诱惑,又跳坑了
  4. halcon入门之_提取遥控器字符并且写入txt文本
  5. 查询快递单号,自动识别快递公司
  6. 读计算机网络得学五笔吗,新手学五笔打字的步骤
  7. PHP输出JSON格式数据
  8. java多个文件加密压缩_java中文件如何加密压缩?
  9. 【编程语言】Java夯实基础(一):Java的起源与发展
  10. 人类首次捕获到反物质 500克能量可超过氢弹