主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
本文将帮助读者在C环境下实现一个基于微信的开发者工具用户在小程序上的#授权登录。
准备:
微信开发者工具下载地址:https://developers . weixin . QQ . com/mini program/dev/dev tools/download . html
微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/index.html
发展:
在开发之初,我们需要明确微信已经开发的授权登录流程。请参考官方API -登录界面。
你会看到微信为开发者开发的登录授权流程:
如图,是用户登录授权的一个正向过程。
为什么是向前的过程?因为在真正的小程序开发中,我们并不确定用户何时需要启动上述登录过程(比如在一些特定场景下用户的凭证丢失,但是Ta确实在小程序内部进行跳转等相关操作而不是退出小程序,这可能会导致一些意想不到的异常),所以我们需要在这个forward过程之外增加一层检测机制来解决这些异常场景,而在官方API中,wx.checkSession刚好合适。
那么,我们的认证过程实际上应该是:
- applet wx.checkSession检查登录状态是否无效。
-成功:接口调用回调函数成功,session_key未过期,流程结束;
- fail:接口调用回调函数失败,session_key已经过期。
-”applet wx . log in获取代码,wx.request将代码提交给自己的服务器。
-"我们自己的服务器向微信服务器提交Appid+appSecret+code以获得session_key openid
-"根据session_key Openid生成3rd_session(基于微信提出的安全考虑,建议开发者不要传输Openid等关键信息)并返回给小程序。
- "applet wx.setStorage存储3rd_session(后续用户操作需要凭据时附加此参数)。
-"小程序wx.getUserInfo获取用户信息+wx.getStorage获取3rd_session数据,与wx.request一起提交给自己的服务器
-"更新自己服务器的SQL用户数据信息,流程结束;
思考完了,接下来就是实现过程了。
小程序端:
在applet中,为基本支持创建一个通用JS。
并在一些需要引用的页面上做引用。
var common = require( ;../Common/Common . js ;)然后,实现Common.js中的逻辑
//用户登录函数userlogin(){ wx . check session({ success:function(){//登录状态存在},Fail: function () {//没有登录状态onlog in()} } function onlog in(){ wx . log in({ success:function(RES){ if(RES . code){//发起网络请求wx . request({ URL: # 39;我们的服务器ApiUrl # 39,data: { code: res.code },Success:function(RES){ const self = this if(逻辑成功){//获取用户凭据storage 3rd _ Session varjson = JSON . parse(RES . data . data)wx . set storage({ key:" third _ Session ;,data:JSON . third _ Session })get userInfo()} else { } },fail:function(RES){ } } },fail:function(RES){ } } } } function get userInfo(){ wx . get userInfo({ success:function(RES){ var userInfo = RES . userInfo userInfoSetInSQL(userInfo)},fail:function(){ user access()} } } function userInfoSetInSQL(userInfo){ wx . get storage({ key: # 39;第三次会议 # 39;,success:function(RES){ wx . request({ URL: # 39;我们的服务器ApiUrl # 39,数据:{ 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更新用户数据失败}}}}至此,小程序的流程基本完成,然后实现自己的服务API。
登录界面逻辑示例
if (dicRequestData。contains key( ;代码 )){ string apiUrl = string。格式( https://api.weixin.qq.com/sns/jscode2session? appid = { 0 } ;secret = { 1 } js _ code = { 2 } grant _ type = authorization _ code 普劳蒂尔。SmartAppID,ProUtil。智能密码,dicRequestData
至此,小程序的基本授权登录和用户信息的获取已经完成。
最后是从别人那里学来的零钱小套路~给我一点钱鼓励一下!!!
仔细阅读以上所有内容后
有不懂的请留言提问~
注:以上内容已删除,仅保留大概内容。在具体项目中肯定有一些逻辑需要调整。引用过教训的请注意。
以上是微信小程序开发的用户授权登录细节。请多关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:介绍一下微信小程序开发的授权登录(小程序授权登录)。 https://zhujicankao.com/79002.html
评论前必须登录!
注册