微信小程序授权登录的最新实现方案详解(2025年).docx

微信小程序授权登录的最新实现方案详解(2025年).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

微信小程序授权登录的最新实现方案详解(2025年)

目录微信授权登录wx.getUserProfile方法获取用户信息退出登录与本地缓存wx.setStorageSync结合使用总结补充:wx.getUserProfile已被回收

微信授权登录

我们的项目开发有时候用到用户的一些信息,比如头像,昵称等。目前小程序为我们提供好了wx.getUserProfile方法以供获取用户信息,它的使用非常简单。

wx.getUserProfile方法获取用户信息

不推荐使用wx.getUserInfo获取用户信息,自2025年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息

推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认。

对应的官方文档:/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

简单示例代码:

官网的示例代码写得较为复杂,这里我写了一些简单的代码,以便学习。

!--userInfo如果为空证明没有登录--

buttonwx-if={{!userInfo}}bindtap=login获取头像昵称/button

viewwx:else

imagesrc={{userInfo.avatarUrl}}/image

text{{userInfo.nickName}}/text

/view

.userInfo{

display:flex;

flex-direction:column;

align-items:center;

.userInfoimage{

width:200rpx;

height:200rpx;

border-radius:200rpx;

Page({

data:{

userInfo:,//用于存放获取的用户信息

login(){

wx.getUserProfile({

desc:必须授权才能继续使用,//必填声明获取用户个人信息后的用途,后续会展示在弹窗中

success:(res)={

console.log(授权成功,res);

this.setData({

userInfo:res.userInfo

fail:(err)={

console.log(授权失败,err);

退出登录

由于上面用的判断是否登录,是用userInfo是否为空判断的,所以我们退出登录只要把userInfo清空就行了,就是这么简单粗暴!

与本地缓存wx.setStorageSync结合使用

如果没有本地缓存,每次打开小程序都需要再授权一次,太麻烦了,而且本地缓存中的数据其他页面也能使用,不用重复获取。

完整代码:

!--userInfo如果为空证明没有登录--

buttonwx-if={{!userInfo}}bindtap=login获取头像昵称/button

viewwx:else

imagesrc={{userInfo.avatarUrl}}/image

text{{userInfo.nickName}}/text

buttontype=warnbindtap=loginOut退出登录/button

/view

Page({

data:{

userInfo:,//用于存放获取的用户信息

onLoad(){

letuser=wx.getStorageSync(user)

this.setData({

userInfo:user

//授权登录

login(){

wx.getUserProfile({

desc:必须授权才能继续使用,//必填声明获取用户个人信息后的用途,后续会展示在弹窗中

success:(res)={

console.log(授权成功,res);

wx.setStorageSync(user,res.userInfo)

this.setData({

userInfo:res.userInfo

fail:(err)={

console.

文档评论(0)

182****6697 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档