uniapp微信小程序微信登录一键授权

发布网友 发布时间:2024-09-11 14:03

我来回答

1个回答

热心网友 时间:3分钟前

提示

1.当用户未授权过,调用该接口将直接报错

2.当用户授权过,可以使用该接口获取用户信息

微信授权步骤

授权

部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个scope,用户选择对scope来进行授权,当授权给一个scope之后,其对应的所有接口都可以直接使用。

此类接口调用时:

如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;如果用户已授权,可以直接调用接口;如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口fail回调。请开发者兼容用户拒绝授权的场景。获取用户授权设置开发者可以使用wx.getSetting获取用户当前的授权状态。

打开设置界面

用户可以在小程序设置界面(「右上角」-「关于」-「右上角」-「设置」)中控制对该小程序的授权状态。开发者可以调用wx.openSetting打开设置界面,引导用户开启授权。提前发起授权请求开发者可以使用wx.authorize在调用需授权API之前,提前向用户发起授权请求

<!--微信授权登录全程代码实现--><template><view><viewv-if="isloading"><!--isloding是用来记录当前用户是否是第一次授权使用的--><view><viewclass='header'><imagesrc='../../static/img/wx_login.png'></image></view><viewclass='content'><view>申请获取以下权限</view><text>获得你的公开信息(昵称,头像、地区等)</text></view><buttonclass='bottom'type='primary'open-type="getUserInfo"withCredentials="true"lang="zh_CN"@getuserinfo="getuserinfo">授权登录</button></view></view><!--#endif--></view></template><script>exportdefault{data(){return{SessionKey:'',OpenId:'',nickName:null,avatarUrl:null,isloading:uni.getStorageSync('isloading')||true//默认为true};},methods:{//第一授权获取用户信息===》按钮触发getuserinfo(){letthat=this;uni.getUserInfo({provider:'weixin',success:function(infoRes){letnickName=infoRes.userInfo.nickName;//获取用户登录昵称letavatarUrl=infoRes.userInfo.avatarUrl;//获取用户头像try{uni.setStorageSync('isloading',false);//记录是否第一次授权false:表示不是第一次授权that.updateUserInfo();}catch(e){}},fail(res){}});},//登录login(){letthat=this;uni.showLoading({title:'登录中...'});//1.wx获取登录用户codeuni.login({provider:'weixin',success:function(loginRes){letcode=loginRes.code;if(!that.isloading){//非第一次授权获取用户信息uni.getUserInfo({provider:'weixin',success:function(infoRes){//获取用户信息后向调用信息更新方法letnickName=infoRes.userInfo.nickName;//昵称letavatarUrl=infoRes.userInfo.avatarUrl;//头像that.updateUserInfo();//调用更新信息方法}});}//2.将用户登录code传递到后台置换用户SessionKey、OpenId等信息uni.request({url:'服务器地址',//接入后端提供的登录接口data:{code:code,//传入参数code获取登录凭证},method:'GET',header:{'content-type':'application/json'},//请求头success:(res)=>{//openId、或SessionKdy存储//隐藏loadinguni.hideLoading();}});},});},//向后台更新信息updateUserInfo(){let_this=this;uni.request({url:'url',//服务器端地址data:{appKey:this.$store.state.appKey,//Vuex封装app密钥customerId:_this.customerId,//自定义idnickName:_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:90rpx090rpx50rpx;border-bottom:1pxsolid#ccc;text-align:center;width:650rpx;height:300rpx;line-height:450rpx;}.headerimage{width:200rpx;height:200rpx;}.content{margin-left:50rpx;margin-bottom:90rpx;}.contenttext{display:block;color:#9d9d9d;margin-top:40rpx;}.bottom{border-radius:80rpx;margin:70rpx50rpx;font-size:35rpx;}</style>

本文就介绍到这里了,希望对大家有所帮助~

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com