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

本站: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确实在小程序内部进行跳转等相关操作而不是退出小程序,这可能会导致一些意想不到的异常),所以我们需要在这个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://本站.com/79269.html

推荐站内搜索:免费域名注册、免费域名空间申请、动态vps秒换ip国内代理ip、免备案cdn加速、域名价格、韩国独立服务器、ip查看网页备案、免费的网站服务器、