小程序-文章:微信第三方登录(静默授权和非静默授权)

ylbtech-小程序-文章:微信第三方登录(静默授权和非静默授权)
1.返回顶部

1、

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

微信的授权登录在日常应用中应用的非常广泛,越来越多的平台支持用户使用微信进行授权第三方登录

使用微信授权登录有哪些优势/好处;

1、用户量足够大,基本所有用户都会有微信,登录起来比较方便快捷;

2、微信作为一个开放平台,为众多公众号/服务开放了许多服务接口,让公众号能够为自己的用户提供更加个性、更加优质的产品服务;

open id 和 union id ,这两个id有什么区别;

1、open id:在关注者与公众号产生消息交互后,公众号可获得关注者的open id, 同一个用户,在不同公众号或移动应用下对应有不同open id标识;

2、union id:同一个用户,在不同公众号或移动应用下unionID相同;前提是,如若需要做多个公众号以及移动应用账户互通,得到唯一身份标识union id,则需要将多个公众号或移动应用在微信开放平台进行绑定,然后我们才能给拿到union id;

所以,如果某个应用或者服务,有联合登录甚至多个公众应用多账户互通,可以采用union id来进行账户体系的用户识别与合并;即微信平台可以通过union id 来进行基于多个公众号之间的账户体系互通与识别合并;

微信联合登录是怎么登录的,有几种登录方式;微信联合登录和微信授权登录【授权登录(非静默授权)与静默授权

微信联合登录;也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;

授权登录:需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。

静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。

如何通过微信账户体系来做多应用、多平台之间的账户互通体系;如果某个服务同时分布在多个公众号中,账户体系如何建立;如何做到用户身份唯一识别;

1)、同一用户不同公众号/应用下open id不同,同一用户不同公众号/应用下unionid相同;

2)、建立应用账户体系时,通过union来进行多应用/平台之间的用户账户体系识别与合并;

3)、多应用/平台建立账户体系时,需要做到唯一user id对应唯一union id;

某个服务,包括移动app端、PC网页端、公众号端服务,那么用户使用微信授权登录的数据流转流程是怎么样的;

1、用户通过微信授权移动app服务;该应用服务即可通过接口获取用户的union id,这个时候,如果在数据库中没有查到该id,则识别为新用户,直接创建一个user id,该唯一user id与union id 对应;

2、用户通过微信扫码PC端授权联合登陆获取PC端服务;该应用服务即可通过接口获取用户的union id,这个时候,在数据库中查到有这个id,就会把pc登录这个账户合并到之前创建的唯一user id账户下;

3、用户通过关注该服务公众号,用微信授权登录公众号服务;该应用服即可通过接口获取用户的union id,这个时候,在数据库中查到有这个id,就会把公众号中登录的这个账户合并到之前创建的唯一user id账户下;

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

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

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

特殊场景下静默授权:

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

网页授权流程:

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

确保微信公众账号拥有授权作用域(scope参数)的权限的前提下引导用户去授权页面

参考链接:

scope为snsapi_base

注意:appid,redirect_uri,state这些要和后台协商好

https://open.weixin.qq.com/connect/oauth2/authorize?appid="+wx_appid+"&redirect_uri="+api.wx_reg+"&response_type=code&scope=snsapi_login,snsapi_userinfo&state=1,0#wechat_redirect

scope为snsapi_userinfo

https://open.weixin.qq.com/connect/oauth2/authorize?appid="+wx_appid+"&redirect_uri="+api.wx_reg+"&response_type=code&scope=snsapi_base,snsapi_userinfo&state=1,0#wechat_redirect

用户同意授权后

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。

2、通过code换取网页授权access_token(后台操作)

页面跳回跳的url上redirect_uri/?code=CODE&state=STATE。code

通过code换取的是网页授权access_token,如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

3:需要个人信息。后台通过code得到值之后返回给前端去操作

2、

2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部
6.返回顶部
7.返回顶部
8.返回顶部
9.返回顶部
10.返回顶部
11.返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/storebook/p/9531819.html

时间: 2024-10-08 14:25:08

小程序-文章:微信第三方登录(静默授权和非静默授权)的相关文章

微信小程序与微信公众号同一用户登录问题

最近在做微信小程序与微信公众号登录合并的接口.整理相关资料以及个人认识的心得写了这篇文章与大家一起分享. 首先,简单说下我遇到的问题是我们的程序调用微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,然而,当我们调用微信公众号也同样的到openid,同一以用户两个不同的openid,不能区分是否为同一用户,然后发现无论调用微信小程序还是微信公众号同一个用户的到unionid是相同的,所以我们就用unionid来区分是否为同一用户. UnionID机制说明: 如果开发

微信小程序之微信登陆 —— 微信小程序教程系列(20)

简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自家的后台中而已. 新建一个Hello World项目,找到app.js文件打开,代码如下: app.js: App({ onLaunch: function () { //调用API从本地缓存中获取数据 var logs = wx.getStorageSync('logs') || [] logs.

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的

微信第三方登录 -- (PC端+移动端)

微信第三方登录 -- (PC端+移动端) 一.前言 一. 什么是第三方登录 所谓的第三方登录,是说基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能.而这里的第三方平台,一般是已经拥有大量用户的平台,国外的比如Facebook,Twitter等,国内的比如微博.微信.QQ等. 二. 为什么要用第三方登录 第三方登录之所以会被较为广泛地在产品设计上使用,是因为它有以下几个优点: (1)对普通用户 相比于本地注册,第三方登录一般来说比较方便.快捷,能够显著降低用户的注册和登

微信小程序(原名微信应用号)开发工具0.9版安装教程

微信小程序全称微信公众平台·小程序,原名微信公众平台·应用号(简称微信应用号) 声明 微信小程序开发工具类似于一个轻量级的IDE集成开发环境,目前仅开放给了少部分受微信官方邀请的人士(据说仅200个名额)进行内测,因此目前未受到邀请的人士只能使用破解版: 本破解版资源来自于网上,与本人无关,仅供技术开发人员研究之用: 由于尚属内测阶段,因此迭代更新非常快,后续很可能由于升级而导致暂时无法使用.   特别注意 由于目前发布的0.9版本必须验证才能登录(估计是为了验证是否为内测人士),因此必须先下载

[小程序开发] 微信小程序内嵌网页web-view开发教程

为了便于开发者灵活配置小程序,微信小程序开放了内嵌网页能力.这意味着小程序的内容不再局限于pages和large,我们可以借助内嵌网页丰富小程序的内容.下面附上详细的开发教程(含视频操作以及注意事项) 一.小程序内嵌网页web-view教程 1) 微信公众平台,登录小程序账号 2) 左侧-设置-开发设置-业务域名-配置 3) 小程序管理员微信扫码 4) 填写小程序业务域名,域名需ICP备案 5) 下载校检文件上传至服务器指定目录,保存 6) 小程序业务域名配置完成7) 打开微信开发者工具,添加小

小程序开通微信支付 --- 微信商户平台绑定微信小程序APPID

首先情况是这样的:现有公司有个公众号,已经开通了微信支付(已经有一个商户平台),现在需要开发 微信小程序(也有微信支付),如果在小程序里面重新申请 微信支付,就显得比较麻烦.腾讯官方已经提供了 一个商户平台可以绑定10个 appid .公众号也是如此. 首先进入小程序的后台:点击 微信支付 : 它会弹出让你选择 新申请 还是 绑定已有的微信支付账号.选择 "绑定" 安装里面的操作流程 去微信商户平台进行绑定即可: 按照上面的步骤在商户平台绑定完成之后,还需要回到小程序里面进行 M -

探秘小程序(6):微信支付

1.微信支付的开放的能力主要分为两大类:普通模式和服务商模式(又包括普通服务商和银行服务商) 1.1.普通模式适用于自己的开发团队或者外包开发商的直连商户收款.开发者申请自己的appid和mch_id,两者具备绑定关系,一次来使用微信支付提供的开放接口,对商户提供服务(说白了就是用户想个人账户进行转账) 1.2. 普通服务商最常规的第三方模式,第三方帮特约商户申请商户号并为他进行支付开发,第三方本身不经手资金,支付成功后资金直接进入特约商户商户号. 1.3银行类服务商:依托该服务商的结算能力,把

使用Appium 测试微信小程序和微信公众号方法

由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小程序和微信公众号. 前提条件Appium环境搭建,这里不多说了,可查阅Appium环境搭建文章. 因夜神等模拟器是intel的X86架构,很多app安装不了,比如微信.qq等(虽然说可以通过安装arm解释器来解决该问题,但是进行X5内核调试的话也会出现问题),建议最好是一台真实的手机来做. webv