UNIAPP微信小程序登录开发踩的几个坑(uniapp 微信小程序登录)

1、设置一个按钮:

<view class="footer" style="color: #Df924D;" @click="login_wx">

<image style="width:60rpx;height:60rpx;" src="../../static/wx.png" mode="widthFix"></image>

<text style="font-size:40rpx;font-weight:800;">微信登录</text>

</view>

2、建一个单独页面:

<template>

<view>

<!– #ifdef MP-WEIXIN –>

<view v-if="isCanUse">

<view>

<view class='header'>

<image src='../../static/splogo.png'></image>

</view>

<view class='content'>

<view>申请获取以下权限</view>

<text>获得你的公开信息(昵称,头像、地区等)</text>

</view>

<button class='bottom' type='primary' open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo">

授权登录

</button>

</view>

</view>

<!– #endif –>

</view>

</template>

<script>

export default {

data() {

return {

SessionKey: '',

OpenId: '',

nickName: null,

avatarUrl: null,

isCanUse: uni.getStorageSync('isCanUse')||true//默认为true

};

},

methods: {

//第一授权获取用户信息===》按钮触发

wxGetUserInfo() {

let _this = this;

uni.getUserInfo({

provider: 'weixin',

success: function(infoRes) {

let nickName = infoRes.userInfo.nickName; //昵称

let avatarUrl = infoRes.userInfo.avatarUrl; //头像

try {

uni.setStorageSync('isCanUse', false);//记录是否第一次授权 false:表示不是第一次授权

_this.updateUserInfo();

} catch (e) {}

},

fail(res) {}

});

},

      //登录

login() {

let _this = this;

uni.showLoading({

title: '登录中…'

});

// 1.wx获取登录用户code

uni.login({

provider: 'weixin',

success: function(loginRes) {

let code = loginRes.code;

console.log("code=",code)

if (!_this.isCanUse) {

//非第一次授权获取用户信息

uni.getUserInfo({

provider: 'weixin',

success: function(infoRes) {

console.log("infoRes=",infoRes)

                      //获取用户信息后向调用信息更新方法

let nickName = infoRes.userInfo.nickName; //昵称

let avatarUrl = infoRes.userInfo.avatarUrl; //头像

_this.updateUserInfo();//调用更新信息方法

}

});

}

2.将用户登录code传递到后台置换用户SessionKey、OpenId等信息

uni.request({

url:'https://www.wm888.top/htdocs/api/login/zb_getwx.php',

data: {

code:code,

},

method: 'get',

header: {

'content-type': 'application/json'

},

success: (res) => {

console.log("返回的结果=>",res)

//openId、或SessionKdy存储//隐藏loading

uni.hideLoading();

},

fail: (res) => {

console.log(res.data)

//openId、或SessionKdy存储//隐藏loading

uni.hideLoading();

},

});

},

});

},

//向后台更新信息

updateUserInfo() {

let _this = this;

uni.request({

url:'url' ,//服务器端地址

data: {

appKey: this.$store.state.appKey,

customerId: _this.customerId,

nickName: _this.nickName,

headUrl: _this.avatarUrl

},

method: 'POST',

header: {

'content-type': 'application/json'

},

success: (res) => {

if (res.data.state == "success") {

uni.reLaunch({//信息更新成功后跳转到小程序首页

url: '/pages/index/index'

});

}

}

});

}

},

onLoad() {//默认加载

this.login();

}

}

</script>

<style>

.header {

margin: 90rpx 0 90rpx 50rpx;

border-bottom: 1px solid #ccc;

text-align: center;

width: 650rpx;

height: 300rpx;

line-height: 450rpx;

}

.header image {

width: 200rpx;

height: 200rpx;

}

.content {

margin-left: 50rpx;

margin-bottom: 90rpx;

}

.content text {

display: block;

color: #9d9d9d;

margin-top: 40rpx;

}

.bottom {

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

}

</style>

3、将小程序绑定到微信开发平台,否则没有UNIONID,在调用时也查不到的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月3日 上午10:35
下一篇 2023年4月3日 上午10:45

相关推荐

  • 系统集成工程项目管理

    系统集成工程项目管理 系统集成项目是指由多个技术部门和人员组成的团队,通过整合各种技术和资源,实现一个特定的系统或应用。系统集成项目的成功实施对于组织的业务和战略目标具有重要意义。…

    科研百科 2024年9月24日
    28
  • “超硬核”!中电蓝信推出安全协同办公平台(中电蓝信是什么)

    近年来,随着数字化的发展和疫情的影响,大多数人或主动或被动经历了远程办公。因此协同办公在大众视野中的认可度和接纳度有了质的提升。 协同办公平台软件如雨后春笋拔地而起,用户在选择软件…

    科研百科 2023年12月1日
    145
  • 如何进行有效的项目管理(项目管理的方法)

    对于具有成功并有效的项目管理经验的项目经理,还是非常难得的。因为项目管理并不是一件很简单的事情。虽然自己对于项目管理的理解还是处于初级阶段,但是利用自己学习到的理论知识,还是想做一…

    2022年6月17日
    414
  • 农业专家推荐团队的推荐信

    尊敬的先生/女士: 我写信是为了推荐我们农业专家推荐团队。我们团队由一群经验丰富的农业专家组成,他们拥有广泛的农业知识和专业技能,并在农业生产中发挥着重要的作用。 我们的团队成立于…

    科研百科 2024年11月21日
    2
  • E8进销存财务客户管理软件增强版——电脑商业管理软件推荐(E8进销存财务软件)

    E8进销存客户管理软件是一款电脑商业管理软件,该工具能助力销售行业的运作,有效管理客服人员和客户之间的关系,统一销售行为,快下载使用吧! 软件介绍 e8进销存财务客户软件增强版是将…

    科研百科 2022年9月30日
    251
  • 科研项目成本

    科研项目成本: 科研项目成本是科研项目中最为重要的一项支出。这些成本包括硬件设备、软件、人员、材料和知识产权等。这些成本的支出必须确保科研项目的顺利进行和最终成功。 硬件设备是科研…

    科研百科 2025年2月16日
    0
  • 数字化项目核算管理系统

    数字化项目核算管理系统: 提升项目管理效率 随着数字化技术的不断发展,数字化项目核算管理系统已经成为了现代项目管理中不可或缺的一部分。它可以帮助项目经理和团队成员更高效地管理项目,…

    科研百科 2025年1月27日
    0
  • 信息系统项目管理师工具及技术场景记忆法(系统集成项目管理工程师记忆方法)

    信息系统项目管理 信息系统项目管理师十大管理怎么记忆,工具技术怎么理解,要记的知识点太多有没有更简单的方法,当然有。今天这篇文章用更简单的方式让你记住更多的知识点。 担心复习时间不…

    2022年6月9日
    330
  • 在线项目管理工具 免费

    在线项目管理工具:免费午餐的收获 随着互联网的普及,在线项目管理工具已经成为现代企业项目管理中不可或缺的一部分。这些工具可以帮助管理者更好地组织和管理项目,提高项目进度和质量。今天…

    科研百科 2024年7月24日
    56
  • 流程管理系统项目

    流程管理系统项目 流程管理系统是一种用于管理企业或组织业务流程的软件系统。它可以帮助企业或组织更好地理解和优化业务流程,提高生产效率和降低成本。 在业务流程管理中,企业或组织通常需…

    科研百科 2024年12月13日
    0