后台-系统设置-扩展变量-手机广告位-内容正文顶部 |
一、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在线客服。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。