E企盈营销工具技术服务商 热线:4006-838-530

微信网页授权,微信小程序开发用户授权登陆

E企盈直播平台营销卖货系统

本篇将帮助读者实现基于微信开发者工具&C#环境下的用户在小程序上的授权登陆。准备:微信开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/index.html开发:在开发之初,我们需要先明确微信方已经制定好的授权登陆流程,参看。你会看到微信方为开发者制定好的登陆授权流程:如图,即为一个顺向的用户登陆授权的流程。为什么说它是一个顺向的流程呢?因为在真正的小程序开发中,我们并不确定用户何时需要起调如上的登陆流程(如:用户在某些特定场景下的凭证丢失,但Ta并没有退出小程序而是在小程序内部做跳转等相关操作,即有可能导致一些预期之外的异常),所以,我们需要在这个顺向的流程之外,加一层检测机制,来解决这些异常场景,而官方API中,wx.checkSession刚好可以一定程度上解决这个问题。那么,我们的认证流程其实应该是:-小程序wx.checkSession校验登陆态为失效-success:接口调用成功的回调函数,session_key未过期,流程结束;-fail:接口调用失败的回调函数,session_key已过期-》小程序端wx.login获取code并wx.request提交code给己方服务器-》己方服务器提交Appid+appSecret+code到微信方服务器获取session_key&openid-》己方服务器根据session_key&openid生成3rd_session(微信方提出的基于安全性的考虑,建议开发者不要将openid等关键性信息进行数据传输)并返回3rd_session到小程序端-》小程序端wx.setStorage存储3rd_session(在后续用户操作需要凭证时附带该参数)-》小程序端wx.getUserInfo获取用户信息+wx.getStorage获取3rd_session数据后,一并wx.request提交给己方服务器-》己方服务器SQL用户数据信息更新,流程结束;思路整理完毕,接下来实现流程小程序端:在小程序中,新建一个通用的JS做基础支持并在一些需要引用的页面进行引用varcommon=require(“../Common/Common.js”)接着,在Common.js中实现逻辑//用户登陆functionuserLogin(){wx.checkSession({success:function(){//存在登陆态},fail:function(){//不存在登陆态onLogin()}})}functiononLogin(){wx.login({success:function(res){if(res.code){//发起网络请求wx.request({url:’OurServerApiUrl’,data:{code:res.code},success:function(res){constself=thisif(逻辑成功){//获取到用户凭证存儲3rd_sessionvarjson=JSON.parse(res.data.Data)wx.setStorage({key:”third_Session”,data:json.third_Session})getUserInfo()}else{}},fail:function(res){}})}},fail:function(res){}})}functiongetUserInfo(){wx.getUserInfo({success:function(res){varuserInfo=res.userInfouserInfoSetInSQL(userInfo)},fail:function(){userAccess()}})}functionuserInfoSetInSQL(userInfo){wx.getStorage({key:’third_Session’,success:function(res){wx.request({url:’OurServerApiUrl’,data:{third_Session:res.data,nickName:userInfo.nickName,avatarUrl:userInfo.avatarUrl,gender:userInfo.gender,province:userInfo.province,city:userInfo.city,country:userInfo.country},success:function(res){if(逻辑成功){//SQL更新用户数据成功}else{//SQL更新用户数据失败}}})}})}至此,小程序端的流程基本实现完毕,接着实现己方服务APILogin接口逻辑范例if(dicRequestData.ContainsKey(“CODE”)){stringapiUrl=string.Format(“https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code”,ProUtil.SmartAppID,ProUtil.SmartSecret,dicRequestData[“CODE”]);HttpWebRequestmyRequest=(HttpWebRequest)WebRequest.Create(apiUrl);myRequest.Method=”GET”;HttpWebResponsemyResponse=(HttpWebResponse)myRequest.GetResponse();StreamReaderreader=newStreamReader(myResponse.GetResponseStream(),Encoding.UTF8);stringcontent=reader.ReadToEnd();myResponse.Close();reader.Close();reader.Dispose();//解析userModelReMsg=JSONUtil.JsonDeserializeuserModel(content);//解析if((!string.IsNullOrWhiteSpace(ReMsg.openid))&&(!string.IsNullOrWhiteSpace(ReMsg.session_key))){//成功自定义生成3rd_session与openid&session_key绑定并返回3rd_session}else{//错误未获取到用户openid或session}}else{//错误未获取到用户凭证code}UserInfoUpdate接口在此不加赘述,用户根据自身情况对数据进行操作即可,微信方调用成功时返回的相关参数信息如下至此,完成了小程序基本的授权登陆及用户信息的获取。最后的最后,是从别人那里学来的赚零钱小套路~赏点小钱鼓励一下我吧!!!(๑•̀ㅂ•́)و✧认真看完以上所有后有啥不懂的欢迎留言提问~注:以上内容有所删减,仅保留通用内容。在具体项目中必定存在部分逻辑需要调整,引鉴的同学请注意

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信网页授权,微信小程序开发用户授权登陆
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏