uniapp微信公众号登录

项目中新建common文件夹,新建文件login.js

function getUrlCode() {
	// 截取url中的code方法
	var url = location.search;
	var theRequest = new Object();
	if (url.indexOf('?') != -1) {
		var str = url.substr(1);
		var strs = str.split('&');
		for (var i = 0; i < strs.length; i++) {
			theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
		}
	}
	console.log(theRequest);
	return theRequest;
}

function getCode() {
	// 非静默授权,第一次有弹框
	this.code = '';
	var local = window.location.href; // 获取页面url
	var appid = '';
	let id = 1
	var url = encodeURIComponent(local);
	this.code = getUrlCode(); // 截取codeurlEncode
	if (JSON.stringify(this.code) == '{}') {
		// 如果没有code,则去请求
		window.location.href =
			'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
			appid +
			'&redirect_uri=' +
			url +
			'&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect';
	} else {
		let that = this
		uni.request({
			url: '/wx/userInfo/getUserInfo',
			data: {
				code: that.code.code
			},
			success(res) {
				console.log(res)
				that.userInfo = res.data.object.wxUser
				login(res.data.object.wxUser)
			},
			fail(err) {
				console.log(err)
			}
		})
	}
}

function login(userInfo) {
	let that = this
	uni.request({
		url: '/login',
		method: 'POST',
		data: {
			username: userInfo.openid,
			password: userInfo.openid
		},
		header: {
			"content-type": "application/x-www-form-urlencoded"
		},
		success: res => {
			console.log(res)
			getApp().globalData.token = res.data.token
			getApp().globalData.userInfo = res.data.user
		},
		fail: (err) => {
			console.log(err)
		},
	});
}

module.exports = {
	getCode
}

在需要的页面引入

var login = require('../../common/login.js')
onLoad(option) {
		console.log(option)
		let userInfo = getApp().globalData.userInfo;
		if (userInfo.id) {
			this.userInfo = userInfo;
		} else {
			// this.getCode();
			login.getCode()
		}
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值