主机参考: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并没有退出小程序,而是在小程序内部进行跳转等相关操作,这可能会导致一些意外的异常),因此我们需要在这个转发过程中添加一层检测机制来解决这些异常场景,而在官方API中,wx.checkSession恰到好处。
那么,我们的认证流程实际上应该是:
- applet wx.checkSession验证登录状态是否无效。
-成功:接口成功调用回调函数,session_key未过期,流程结束;
- fail:接口调用回调函数失败,session_key已过期。
-小程序wx.login获取代码,wx.request将代码提交给自己的服务器。
-我们自己的服务器向微信服务器提交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作为基本支持。
并在一些需要引用的页面上做参考。
var common = require(& quot;../Common/Common . js & quot;)然后,实现Common.js中的逻辑
//用户登录到函数userlogin(){ wx . check session({ success:Function(){//有登录状态},Fail:Function(){//没有登录状态的on log in()} } Function on log in({ success:Function(RES){ if(RES . code){//发起网络请求wx . request({ URL:&;#39;我们的服务器ApiUrl & amp#39;,data: { code: res.code },Success:function(RES){ const self = this if(逻辑成功){//获取用户凭据存储区3rd _ sessionvar JSON = JSON。parse(RES . data . data)wx . set storage({ key:“third _ Session & quot;,data:JSON . third _ Session })get userInfo()} else { } },fail:function(RES){ } },fail:function(RES){ } } } function get userInfo({ success:function(RES){ var userInfo = RES . userInfo userInfoSetInSQL(userInfo)},fail:function(){ user#39;第三届& amp#39;,success:function(RES){ wx . request({ URL:& amp;#39;我们的服务器ApiUrl & amp#39;,数据:{ third_Session: res.data,昵称:userInfo.nickName,avatarUrl: userInfo.avatarUrl,性别:userInfo.gender,省:userInfo .省,市:userInfo .市,国家:userInfo.country },成功:函数(RES){ if(逻辑成功){//SQL更新用户数据成功} else {//SQL更新用户数据失败}}}}至此,小程序的过程基本完成,接下来实现自己的服务API。
登录界面逻辑示例
if(dicRequestData。contains key(& quot;代码& quot)){ string apiUrl = string。格式(& quothttps://api.weixin.qq.com/sns/jscode2session? appid = { 0 } & amp;秘密= { 1 } & ampjs_code={2}grant _ type = authorization _ code & quot普劳蒂尔。SmartAppID,ProUtil。智能密码,dicRequestData
至此,小程序的基本授权登录和用户信息的获取已经完成。
最后,这是我从别人那里学来的一个小技巧~给我一点钱鼓励我吧!!!
仔细阅读以上所有内容后
有什么不懂的欢迎留言提问~
注:以上内容已删除,仅保留一般内容。在具体项目中肯定有一些逻辑需要调整。请注意正在学习的学生。
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:介绍一下微信小程序开发的用户授权登录(微信小程序授权登录)。 https://zhujicankao.com/114041.html
评论前必须登录!
注册