位置: IT常识 - 正文

uniapp微信公众号h5微信授权登录(uniapp微信公众号授权)

编辑:rootadmin
uniapp微信公众号h5微信授权登录 前言

推荐整理分享uniapp微信公众号h5微信授权登录(uniapp微信公众号授权),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp微信公众号扫码点餐系统,uniapp微信公众号转发文章功能,uniapp微信公众号开发教程,uniapp微信公众号h5,uniapp微信公众号支付,uniapp微信公众号支付,uniapp微信公众号开发,uniapp微信公众号支付,内容如对您有帮助,希望把文章链接给更多的朋友!

在微信客户端中访问第三方网页,公众号可通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

关于公众号网页授权前期准备:

1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号。 (进入到微信公众公众平台,找到开发者工具,点开公众平台测试账号)

2.进入测试平台账号后台,找到体验接口权限表,配置授权回调页面域名。 (微信授权登录成功后会回调一个页面,此页面必须在此域名下)

3.记录一下appID和appsecret

授权登录:

微信公众平台技术文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

1.引导用户进入授权页面同意授权

let appid = '你的测试平台账号的appid'let redirect_uri = window.location.href // 授权登录成功回调的地址,一般为当前页// 授权操作是直接访问腾讯开放平台的一个授权地址,授权成功后会回调window.location = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appid + '&redirect_uri=' + redirect_uri + '&response_type=code&scope=snsapi_userinfo&state=abcdefghigklmnopqrstuvwxyz#wechat_redirect' //引导用户授权参数解析:appid 为公众号的appId,redirect_uri 为授权成功的回调页,response_type 返回类型固定code,scope 为授权作用域,可选值1.snsapi_base静默授权,无授权页面,只可以获取openid。 可选值2.snsapi_userinfo感知授权,弹出授权页面,需用户同意,可获取openid、昵称、性别、头像等微等用户数据(一般选择次作用域)Tips:1.两种授权方式,在测试平台环境下,是需要先关注测试公众号的,正式公众号环境不需要;2.如果同一用户先进行过snsapi_userinfo授权,后又采取snsapi_base授权,会出现也可以拿到微信用户数据的情况;3.如果用户关注了公众号,采取snsapi_base授权,也会出现拿到微信用户数据的情况。(本人开发过程中遇到过2和3情况,为不确定性因素,开发者根据使用场景选择一个授权作用域,尽量不要混用)

2.获取code参数 在授权成功后,页面将跳转至 redirect_uri/?code=CODE&state=STATE 此时获取到了code参数,code参数就是之后获取微信信息的凭证。

3.获取微信用户数据 通过code获取到微信用户信息后,结合自身的业务逻辑,完成授权登录的功能。

//判断登录过期逻辑。。。这里就不弄了getCode () { // 非静默授权,第一次有弹框 this.code = '' var local = window.location.href // 获取页面url var appid = 'wxcXXXXXXXXXX' this.code = this.getUrlCode().code // 截取code if (this.code == null || this.code === '') { // 如果没有code,则去请求 window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect` } else { // 你自己的业务逻辑 this.getToken(); //code不为空,传给后台 }},getUrlCode() { // 截取url中的code方法 var url = location.search this.winUrl = url var 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},getToken(){ console.log("code",this.code) //获取微信code let url ="api/v1/oauth/wechatlogingzh"; let data = {code:this.code} //this.request是我封装的一个请求方法 this.request(url,data,"POST",false,1).then(res =>{ console.log("token",res) if(res.code == 1){ //缓存拿到的数据 uni.setStorageSync('token', res.data.userinfo.token); uni.setStorageSync("userInfo",res.data.userinfo); this.user =res.data.userinfo; } })},

关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

uniapp微信公众号h5微信授权登录(uniapp微信公众号授权)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注(测试号的话要先关注),就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

关于特殊场景下的静默授权

1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;

2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。

具体而言,网页授权流程分为四步:

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

步骤:

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。拿到code传给后端获取用户信息

//获取url中的searchlet search = location.search.slice(1);let arr = search.split("&");let result = {};arr.forEach(function(item){ let itemArr = item.split('='); result[itemArr[0]]=itemArr[1];})if(result.code){//调用后端接口getUserInfo();}常见问题:一般情况下是授权回调地址和授权回调页面域名不匹配导致的。附源代码:

登录按钮:

 业务逻辑:

本文链接地址:https://www.jiuchutong.com/zhishi/294511.html 转载请保留说明!

上一篇:纳汉尼国家公园保护区的鸟瞰图,加拿大西北部 (© Robert Postma/Getty Images)(纳汉双语)

下一篇:解决跨域Access to XMLHttpRequest at ‘http://localhost:8080/xxx’ from origin ‘http://localhost:63342(解决跨域问题的注解)

  • 如何让更多人来关注微信,微信营销的几种方法(如何让更多人来拍卖)

    如何让更多人来关注微信,微信营销的几种方法(如何让更多人来拍卖)

  • 荣耀v30pro可以用wifi6吗(荣耀v30pro可以用65w快充吗)

    荣耀v30pro可以用wifi6吗(荣耀v30pro可以用65w快充吗)

  • v1731ca是不是vivo手机(v1731ca是什么型号的手机)

    v1731ca是不是vivo手机(v1731ca是什么型号的手机)

  • 小米为啥没出7(小米为啥没出70寸电视)

    小米为啥没出7(小米为啥没出70寸电视)

  • soul匹配是双向的吗(soul双方匹配度怎么涨)

    soul匹配是双向的吗(soul双方匹配度怎么涨)

  • m1806d9pe是小米平板几(小米m1806d9e是什么型号)

    m1806d9pe是小米平板几(小米m1806d9e是什么型号)

  • 黄钻过期后自定义的空间背景会消失吗(黄钻过期了还能置顶吗)

    黄钻过期后自定义的空间背景会消失吗(黄钻过期了还能置顶吗)

  • ppt录制幻灯片演示保存在什么地方(ppt 录制幻灯片)

    ppt录制幻灯片演示保存在什么地方(ppt 录制幻灯片)

  • 以太网和宽带的区别(以太网和宽带的网线区别在哪)

    以太网和宽带的区别(以太网和宽带的网线区别在哪)

  • 苹果手机显示itunes开不了机(苹果手机显示充电,但是充不进去什么情况)

    苹果手机显示itunes开不了机(苹果手机显示充电,但是充不进去什么情况)

  • 宽带密码改了后就上不了网了怎么办(宽带密码改了后上不了网)

    宽带密码改了后就上不了网了怎么办(宽带密码改了后上不了网)

  • 微信仅聊天看不到朋友圈吗(微信仅聊天看不到视频号吗)

    微信仅聊天看不到朋友圈吗(微信仅聊天看不到视频号吗)

  • 怎么看运行内存剩多少(oppo手机怎么看运行内存)

    怎么看运行内存剩多少(oppo手机怎么看运行内存)

  • 计算机中鼠标器属于什么设备(计算机鼠标器具有简单直观移动)

    计算机中鼠标器属于什么设备(计算机鼠标器具有简单直观移动)

  • qq空间上传照片怎么才能不在动态中显示(qq空间上传照片怎么显示手机型号)

    qq空间上传照片怎么才能不在动态中显示(qq空间上传照片怎么显示手机型号)

  • 什么叫桌面快捷方式(什么叫桌面快捷键)

    什么叫桌面快捷方式(什么叫桌面快捷键)

  • 荣耀20i退出键在哪里(荣耀20pro退出按键)

    荣耀20i退出键在哪里(荣耀20pro退出按键)

  • 共享单车怎么定位找车(怎么使用共享单车)

    共享单车怎么定位找车(怎么使用共享单车)

  • 调音台gain什么意思(调音台解释)

    调音台gain什么意思(调音台解释)

  • 怎么将标题设为一级标题(怎么将标题设为自动另起一行)

    怎么将标题设为一级标题(怎么将标题设为自动另起一行)

  • 抖音没有动态怎么恢复(抖音上怎么没动态)

    抖音没有动态怎么恢复(抖音上怎么没动态)

  • dell笔记本如何定制(dell笔记本如何分区)

    dell笔记本如何定制(dell笔记本如何分区)

  • 产品短视频如何制作(产品短视频怎么做)

    产品短视频如何制作(产品短视频怎么做)

  • 苹果8能开空调吗(苹果8能开空调吗手机)

    苹果8能开空调吗(苹果8能开空调吗手机)

  • ipadpro有耳机孔吗(ipad pro2020有耳机孔)

    ipadpro有耳机孔吗(ipad pro2020有耳机孔)

  • 个税年度汇算如何补税
  • 增值税纳税申报表模板
  • 讲课费怎么代扣代缴个人所得税
  • 一般纳税人简易征收的适用范围
  • 进项认证以后如何开具红字信息表
  • 已发货未收钱会计分录
  • 企业所得税税率
  • 互联网公司如何盈利
  • 专项应付款在资产负债表中如何列示
  • 小规模人力资源外包税率
  • 购入设备发生的运输费计入什么科目
  • 报销职工住院费多久到账
  • 固定资产公允价值减去处置费用后的净额
  • 个人房屋租金收入怎么交税
  • 含运费的原材料会计分录
  • 要注销的企业多久能注销
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 税务部门罚没收入会计分录
  • 除工资外其他收入需要个税吗
  • 企业向关联方借款是否可以无偿
  • 购入的汽车怎么入账
  • 新契税法还有优惠吗?
  • 房地产开发企业的土地使用权计入哪里
  • 验资报告办理一般需要多久时间
  • 以前年度损益调整
  • 补领以前月份的工资如何计算个人所得税?
  • 销售货物没有合同要交印花税吗
  • 收回财政结余资金账务处理
  • 销售需要安装的商品,只能在安装和检验完毕后确认收入
  • 银行汇票和银行本票区别图解
  • geeklink 极联科技
  • 销售材料计提存入什么
  • 内置天线手机
  • 应收款项减值的核算方法
  • 3d representation
  • java中通配符作用
  • 客户借款怎么做账
  • 现金零星支出大还是小
  • dedecms转eyoucms
  • mongodb开启远程连接
  • sql server应用
  • 商场账务
  • 企业应纳税额中包括进项税额
  • 个人建筑安装属于劳务吗
  • 增值税纳税人放弃免税权的规定
  • 税务局不予受理的依据
  • 已经经营中的企业有哪些
  • 长期股权投资中级会计例题
  • 诉讼期间的利息法院支不支持
  • 红字冲销发票流程
  • 充值优惠怎么写
  • 出口退税申报系统自检数据撤销
  • 应交增值税进项税额月底怎么处理
  • 哪些合同需要缴税
  • 固定资产折旧的会计科目
  • 投资收益期末余额在借方还是贷方
  • 集团对子公司的管理办法
  • 银行结算账户的基本要求
  • 库存的周转天数
  • 规范的建账原则是什么
  • 改错的技巧
  • mssql server 2012(SQL2012)各版本功能对比
  • windows的实验步骤
  • win7系统安装谷歌浏览器
  • xp系统分区工具
  • Win7计算机管理里面没有本地用户和组
  • win8如何添加我的电脑
  • ssh可防止什么攻击
  • dns轮询是什么意思
  • 文件夹windows
  • ie6浏览器兼容模式怎么设置在哪里
  • 探索世界怎么玩
  • unity固定位置随机生成物体
  • jquery基础知识
  • js判断上传图片宽高大小
  • jquery并列选择器
  • python怎么爬
  • jquery warp
  • 关于明确干部挂职工作期间有关待遇的
  • 出租车发票密码区被撕掉了能报销吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设