在微信小程的开发中,登录问题,一定要按照这样的顺序 1. 小程序请求login,拿到code 然后传给服务端:  2.服务端拿到code 到微信服务器拿到sessionKey :3.然后小程序调用getuserinfo接口拿到encryptedData,iv,然后给服务端:4.服务端拿到客户端的encryptedData,vi还有之前的sessionKey去解密得到 unionId等用户信息:不然就会出现你这样的问题,你这种情况偶然出现的原因就是 你在服务端还未去获取sessionKey的时候你…
在授权开发以后,需要提交小程序密钥,有小程序密钥第三方才有能力获取用户的一些信息,提供一些能力! 平台分别提供多种方式实现微信登录: 1. 调用wx.login接口,静默获取openid 适用场景:无需使用用户头像.昵称.Unionid信息 2. 使用open-data(小程序)或者开放数据域(小游戏)的方式展示用户信息(无需用户授权) 适用场景:需要在前端“展示”用户头像.昵称信息,但不需要获取Unionid 3.使用button(小程序)或UserInfoButton(小游戏)组件,用户点击…
1. 前言 原本打算把Spring Security中OAuth 2.0的机制讲完后,用小程序登录来实战一下,发现小程序登录流程和Spring Security中OAuth 2.0登录的流程有点不一样,就把写了半天的东西全部推翻了.但是,但是过了一天之后,突然感觉又可以了.我们来一起试一试. 2. 小程序登录流程分析 小程序的登录流程是这样的: 而在Spring Security中的OAuth 2.0 Code模式是这样的: 从这两张图上看最大的差别就是微信小程序中获取code不需要通过后端服务…
前段时间,用了个AES加密解密的方法,详见上篇博客AES加密解密. 加解密方法在window上測试的时候没有出现不论什么问题.将加密过程放在安卓上.解密公布到Linuxserver的时候,安卓将加密的结果传到Linux上解密的时候却总是失败,让用户不能成功登录.经过检查,測试后.发现AES在Linux上解密失败,出现错误: javax.crypto.BadPaddingException: Given final block not properly padded 如今来回想下自己的解决思路:…
后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如既往的乱,如果没有对小程序开发文档有一个整体的了解,搞懂解密流程还是有点难的.这里把小程序从请求用户授权获取手机号码直至获取到手机号码明文的整个流程串了起来,方便迅速了解,如下: 一. 前端相关操作: 1. 请求用户授权获取手机号码: 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 AP…
后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如既往的乱,如果没有对小程序开发文档有一个整体的了解,搞懂解密流程还是有点难的.这里把小程序从请求用户授权获取手机号码直至获取到手机号码明文的整个流程串了起来,方便迅速了解,如下: 一. 前端相关操作: 1. 请求用户授权获取手机号码: 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 AP…
登录与授权 官方文档 一.登录 登录流程时序 说明: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器. 调用 code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key. 之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份. 注意: 会话密钥 session_key 是对用户数据进行 加密签名 的密钥.为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对…
微信小程序分享群获取群id时后端接口返回"微信AES解密失败",后来定位到原因是服务端用于解密的session_key失效.用户获取到openID存在缓存后,就不会每次login获取登录态了,这样会导致登录态失效,即后端维护的session_key失效.分享群后获取的加密信息是老的session_key+openId构成,服务端解密时的session_key要和分享前一致. 在需要获取openGid的页面: app.getOpenId(this.route, this.data.pag…
我们一般都是先获取到微信的 unionid,然后再通过 unionid 去登录自己的网站,就可以关联到用户在自己网站上的 user_id,但是在小程序登录中,有时候可以获取到 unionid,有时候获取不到,在获取不到 unionid 的情况下,用户无法正常登录网站.   UnionID机制说明: 如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 unionid 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程序),用户的 un…
一 .登录 时序图如下: wx.login() 获取js_code 示例代码: App({   onLaunch: function() {     wx.login({       success: function(res) {         if (res.code) {           //TODO         } else {           console.log('获取用户登录态失败!' + res.errMsg)         }       }     });…