VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动

微信小程序开发的用户授权登录(微信小程序用户授权登录流程)

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

微信小程序开发的用户授权登录(微信小程序用户授权登录流程)

准备:

微信开发者工具下载地址: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给小程序。

- "applet 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 () {//没有登录状态onlog in()} } Function onlog in(){ wx . log in({ success:Function(RES){ if(RES . code){//发起网络请求wx . request({ URL:&;#39;我们的服务器ApiUrl & amp#39;,数据:{ 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(){ wx . get userInfo({ success:function(RES){ var userInfo = RES . userInfo userInfoSetInSQL(userInfo)},fail:function(){ user access()} } } function userInfoSetInSQL(userInfo){ wx . get storage({ key:& amp;#39;第三届& amp#39;,success:function(RES){ wx . request({ URL:& amp;#39;我们的服务器ApiUrl & amp#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(& quot;代码& quot)){ string apiUrl = string。格式(& quothttps://api.weixin.qq.com/sns/jscode2session? appid = { 0 } & amp;secret = { 1 } & ampjs _ code = { 2 } & ampgrant _ type = authorization _ code & quot普劳蒂尔。SmartAppID,ProUtil。智能密码,dicRequestData

至此,小程序的基本授权登录和用户信息的获取已经完成。

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:微信小程序开发的用户授权登录(微信小程序用户授权登录流程) https://zhujicankao.com/114357.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 微信小程序开发的用户授权登录(微信小程序用户授权登录流程)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!