uniapp 微信登录

该博客详细介绍了微信小程序的登录流程,包括通过uni.login获取登录code,结合后端接口获取openId,并在用户首次授权后存储。如果用户已授权,则直接更新用户信息;若未授权,则引导至登录页面完成授权。整个过程确保了用户数据的安全性和授权的正确性。
摘要由CSDN通过智能技术生成

App.vue

export default {
	onLaunch: function() {
		login()
	},
}

login.js

export const login = function() {
	// 1.获取登录code
	uni.login({
		provider: 'weixin',
		success: function(loginRes) {
			let code = loginRes.code;
			let  isCanUse = uni.getStorageSync('isCanUse') // 记录是否第一次获取用户数据
			let data = {code}
			// 获取openId并存储,我之后的所有接口请求都会带上这个参数
			// request是我自己封装的请求,参数:接口地址、请求数据
			request(urls.getOpenId, data).then(res => {
				let { openid } = res.result
				store.commit('SET_OPEN_ID', openid);
				// 如果不是第一次获取,不需要权限,直接去拿数据
				if (isCanUse !== "" && !isCanUse) {
					uni.getUserInfo({
						provider: 'weixin',
						success: function(infoRes) {
							// 请求接口更新用户信息,我这里的需求是每次登录都会更新用户信息
							updateUserInfo(infoRes.userInfo)
						}
					})
				}else{
				// 如果是第一次,需要去登录页面获取授权
					uni.navigateTo({
						url:'/pages/login/login'
					})
				}
			})
		},
	});
}

// 向后台更新信息
const updateUserInfo = function(data) {

}

登录页面的代码 /pages/login/login.vue

<template>
    <view>
        <!-- #ifdef MP-WEIXIN -->
        <view>
            <button class='botton' type='primary' open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo">
                授权登录
            </button>
        </view>
        <!-- #endif -->
    </view>
</template>

<script>
    export default {
        name: "login",
        data() {
            return {
            };
			
        },
        methods: {
            // 第一授权获取用户信息
            wxGetUserInfo() {
                let _this = this;
                uni.getUserInfo({
                    provider: 'weixin',
                    success: function(infoRes) {
						uni.setStorageSync('isCanUse', false);// 记录是否第一次授权
						// 这里请求存储用户数据
                    },
                    fail(res) {}
                });
            },
        },
    }
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值