UNIAPP统一注册登录架构及联合登录参数存储详解

后台-系统设置-扩展变量-手机广告位-内容正文顶部

一、UNIAPP统一注册登录架构

  注:此架构针对uniapp有效,不影响原程序。

总体思路

  要求运营者把小程序、公众号、app都绑定到同一个微信开放平台,以实现unionid一致

  1、获取微信unionid实现自动注册和登录

  2、微信小程序、微信H5不提供手动注册和登录

  3、pc、h5、app提供手动注册登录

  4、登录后点击绑定手机号,进行手机号绑定

关于token的有效期

  1、h5和pc有效期不变

  2、小程序/app固定为3个月

通过unionid的自动注册、登录流程

小程序自动登录

  一、用户点击登录,开始调用wx.login获取到code

  二、通过code请求自动登录API

  1、首先通过微信api拿到session_key和openid

  2、将openid和sessioin_key绑定,存储在redis中。

  三、如果上述操作成功,则开始调用wx.getUserinfo获取unionid

  1、wx.getUserinfo获取到加密数据

  2、讲加密数据传递到api进行解密

  3、解密出unionid后用unionid进行自动登录

相关文档

  小程序登录

  https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

  小程序获取unioid

  https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html

  小程序获取手机号

  https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

微信H5自动登录

  一、点击登录,向javashopapi请求获取微信授权跳转链接

  因为前段没有appid,所以由后端拼接链接

  二、授权后前段得到微信code

  三、前端用code请求javashopapi自动登录

  1、后端api通过code拿到openid和微信token

  2、通过微信token拿到微信unionid

  3、通过unionid注册登录,生成javashoptoken

相关文档

  微信授权

  https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

  获取access_token及unionid:

  https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId

公用模块

  通过unionid自动登录应该是一个公用的方法:

  调用伪代码:

  StringunionId="xxxx";

  MemberVomember=loginByUnionId(unionId);

  实现伪代码:

  MemberVologinByUnionId(StringunionId){

  //通过unionid查找会员(es_connect表)

  IntegermemberId=findMemberByUnionId(unionId)

  MemberVomember=null;

  if(memberId==null){//没找到注册一个

  member=registerBy(UnionId);

  }else{

  member=findMemberById(unionid);

  }

  }

  会员的填充规则要求用户名保持唯一性,其他的随机生成即可

APP自动登录

  因为采用uniapp的统一Loginapi,所以和小程序一样

相关文档

  登录授权

  https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html

  unionid获取

  https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Authorized_API_call_UnionID.html

相关表结构

  es_connect表

  此表为已存在的表

union_type规则

uniapp相应文档

  https://uniapp.dcloud.io/api/plugins/login?id=login

  相关配置

二、参数存储

枚举值如下

  QQ("QQ"),

  //微博联合登录

  WEIBO("微博联合登录"),

  //微信联合登录

  WECHAT("微信联合登录"),

  //微信联合登录openid

  WECHAT_OPENID("微信联合登录openid"),

  //支付宝登录

  ALIPAY("支付宝登录");

  在买家通过对应页面进行授权时,会将一下联合登陆的标记存入数据库,方便下次授权自动登录,其中微信授权会存储两个字段,WECHAT_OPENID和WECHAT,WECHAT用与存储unionid,用于联合登陆;而WECHAT_OPENID用于与微信接口的对接,例如发送微信消息,发送微信红包之类的功能,后台与买家异步交互功能。

  用户在第一次授权微信登录/绑定操作,进行微信联合登陆时,会存储unionid以及openid,数据库里两条数据存储。

  上述就是关于UNIAPP统一注册登录架构及联合登录参数存储的所有内容,有需要可以咨询易族智汇javashop在线客服

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

后台-系统设置-扩展变量-手机广告位-内容正文底部
留言与评论(共有 0 条评论)
   
验证码: