文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

uniapp/微信小程序 登录以及用户信息获取功能相关问题 uni.login() uni.getUserinfo()

2023-09-13 17:39

关注

一、小程序登录接口相关 wx.login() / uni.login()

小程序登录的这套流程说难不难,说简单却着实让人搞了很久才渐渐明白,刚参加工作时总会遇到相关的问题摸不着头脑,查各种文档,发现看了很多不同的解决方法,不知道那个正确一个个去实验,而且自己做出来的东西总是让自己觉得不满意。经过一系列的摸索之后才逐渐明白,原来不是因为自己没搞明白,而是由于上度娘看到的很多资料各不统一有可能是由于wx小程序本身对于接口的规则调整而导致的不同。
下面就大致总结一下,具体该如何做吧,为了记录一下流程,就从头说起吧(当然我也是个小白,就大致表述一下自己的理解,欢迎大家指正,千万别怼我,脸皮薄)

1、小程序登录流程 不需要烦恼的授权弹窗

不管是小程序还是其他需要登陆的应用,在登陆的逻辑上都是大差不差,大致可以用下图的关系表示。
简易登录流程
以下是小程序官方提供的小程序登录流程。与以上逻辑不同的是小程序多了一个微信服务端(但与此端交流多为后端人员的操作,除非是云开发的前端人员,否则此端不需要前端开发参与)。
在这里插入图片描述
我们可以发现,小程序登陆时,前端人员无需再提供手机号与密码,而是需要一个 code 值传给后端。
而这个code值则是通过微信提供的一个叫做 wx.login() 的api 的来的,只需要用户使用即可得到(uniapp中为 uni.login() )。
这里大家可能会疑惑为什么没有弹出授权窗口。实际上这个接口并不会弹出授权弹窗。而是直接使用就能得到,以往弹出授权窗口是当我们获取用户信息时(使用了 getUserProfile时 )才会弹出
使用uniapp时代码如下(小程序也差不多,以下有代码时不再解释):

uni.login({  provider: 'weixin', //使用微信登录 必要的参数详情看官方文档  success: function (loginRes) {    console.log(loginRes); //返回的参数包含在loginRes中  }});

所以以后我们不需要再烦恼授权啊之类的问题,只需要写上这段代码,得到code值 ,将其传递给后端程序员即可, 后端可以根据你给的code 再加上小程序的appid和appsecret在微信服务的接口中拿到session_key 和openid, (appid和appsecret 这两个值需要去微信公众平台登录我们小程序的后台,再在 开发管理>开发设置 中查看得到,这个需要了解一下) ,然后后端大概率会处理一下数据,然后将加密的token传递给你。有了这个我们只需要将后端传回的token做好缓存,以及将其附带在每一个需要登陆才可以使用的功能的请求里,这样子登陆功能就大致是完善的了,其他细节根据业务或你配合的后端程序员去完善即可。

那什么时候会有登录弹窗?

wx.getUserinfo(别用了没啥子卵用)

已废弃,微信收回了,不建议用,就算版本老编译成功了,后续发布可能会有无法通过审核之类的问题。

wx.getUserProfile (也别用了,除非老板比牛犟)

这个接口可以 获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo。但是仅限于微信小程序端基础库2.27.1及以上版本
这里改:
在这里插入图片描述
为啥?
因为wx.getUserProfile 接口被收回,详见《小程序用户头像昵称获取规则调整公告》。
啥意思?就是微信建议你别用了,用他提供的其他的方法吧,啥方法呢?就是别用微信的头像和昵称了,可以直接让用户自己填昵称和头像,他也给你准备好了易用的方法。
但是老板比牛犟,不听不听我不听,那咋办?
只能按照上图 ,调整到 基础库 2.10.4 - 2.27.0 的版本,不然的话你可能又会因为弹窗不弹而烦恼了。
大致就是以上了,本人技术能力有限,别骂,脸皮薄,如有错误之处,请大家指导,重申,我大致就是个初学者,就自己理解理解,学习之路坎坷,把自己一段时间的疑惑讲出,希望跟和我一样不太有天赋的小白互相交流。

来源地址:https://blog.csdn.net/SANGZHU_001/article/details/128125384

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯