微信公众号授权绑定第三方应用

目录

一、网页授权

1、第三方应用扫码绑定公众号

2、微信端授权绑定第三方账号,一次授权后续免登录

 


一、网页授权


微信开发者文档

这里的两个业务场景
主要是通过静默授权实现,该授权链接只能在微信客户端打开,主要是依赖微信授权链接中的回调url来满足业务场景。

1、第三方应用扫码绑定公众号

前端首先根据微信的网页授权链接(回调页需要带上当前用户id)生成一个二维码,微信扫码后会自动去请求该链接,然后跳转到回调页面(该页面可展示基本企业信息以及当前用户信息,然后增加一个绑定按钮即可),点击绑定时将获得的code和userId传给后端,后端进行绑定。


2、微信端授权绑定第三方账号,一次授权后续免登录

 

大概有两种方案实现

第一种是通过前端进行跳转页面实现(会存在多次跳转的情况出现)

点击链接:如果此时后端返回token过期或没有,向微信授权链接(回调url为应用登录页)发送请求,进到登录页后调用后端根据微信返回的code查询token接口,后端先根据code查询当前微信用户的openid,然后看是否已与应用账号进行绑定,如绑定直接计算token返回;前端判断如果有token,此时则跳转到应用首页,反之留在登录页;若留在登录页,在调用登录验证完成接口之后,前端再次调用微信授权链接(回调url为应用首页),进到首页后前端调用后端根据微信返回的code绑定当前用户即可,这样以后只要在同一个微信号下面点开链接均无需登录,实现一次授权后续免登录。

第二种是通过后端进行重定向实现(本来采用该方式进行开发测试,由于环境映射问题以及一些客观原因放弃调试,改为第一种,该方式在跳转时用户完全无感知)

点击链接:不管什么链接,前端直接向微信授权链接(回调url为后端的重定向接口)发送请求,后端在重定向接口中根据微信返回的code获取openid,然后判断是否已有绑定账号,若有则重定向到首页同时带上token,若无则重定向到登录页;后续登录页操作与第一种类似。

该方案没有经过调试,我唯一不确定的就是后端在重定向到首页时,应该也会唤醒正常进入到首页会触发的一系列接口吧?理论上来说会,由于当时映射问题没经过测试,如果嫌跳转次数太多可以尝试下该方案。

猜你喜欢

转载自blog.csdn.net/m0_38001814/article/details/115303329