uniapp中调用QQ一键登录实现方法

本文介绍了在uniapp中实现QQ一键登录的步骤,包括在manifest.json配置appid,创建登录页面等关键操作。

要在uniapp中实现QQ一键登录,主要步骤:

1、manifest.json的模块设置中,启用QQ登录,并填入appid

3、新建登录页

<template>
	<view>
	正在进行QQ第三方登录……
	</view>
</template>

<script>
	export default {
		data() {
			return {
				res: '',
			}
		},
		onLoad: function(options) {
			console.log(options);
			uni.login({
				provider: "qq",
				success: (resp) => {
					var access_token = resp.authResult.access_token;
					uni.getUserInfo({
						provider: 'qq',
						success: function(infoRes) {
							console.log(infoRes)
							var formdata = {
								nickName: infoRes.userInfo.nickname,
								test: 'test',
								unionId: infoRes.userInfo.unionid,
								openId: infoRes.userInfo.openId,

							};
							console.log(formdata);
							uni.request({
								url: 'https://*/login/appqqlogin',
								method: 'post',
								header: {
									'content-type': 'application/x-www-form-urlencoded'
								},
								data: formdata,
								success: (res) => {
									uni.navigateTo({
									         url:'/pages/touserinfo/touserinfo',
									       });
									console.log('post finish');
									console.log(res);
									this.res = res;
								},
								fail: () => {
									console.log('请求失败');
								}
							});


						}
					})
				},
				fail: (err) => {}
			});

		}
	}
</script>

<style>

</style>

### UniApp 实现手机号一键登录 #### 准备工作 在微信公众平台上完成小程序项目的注册与创建,确保获得`AppID`。前往小程序的“设置”下的“开发设置”,启用“微信登录”和“用户信息”的权限选项来取得`AppSecret`[^1]。 对于前端部分采用的是uni-app框架构建的应用程序;而后端则利用PHP作为服务器脚本语言处理来自客户端的数据请求。确保已经搭建好了支持上述技术栈的工作环境[^2]。 #### 前端(uni-app)代码实现 为了发起获取临时登陆凭证`code`的操作,在页面加载时可以通过调用微信JS-SDK中的`wx.login()`函数: ```javascript // 获取用户的登录状态 onLoad() { let that = this; uni.login({ provider: 'weixin', success(res) { console.log('login code:', res.code); // 将code发送给后台换取session_key和openid that.getCode(res.code); }, fail(err){ console.error("Failed to get login code", err); } }); } ``` 此段JavaScript代码展示了如何通过uni-app内置API `uni.login()` 来向微信服务器申请一次性的验证码`code`,之后会将其传递到后端用于交换`session_key`和其他必要的身份验证信息。 当接收到由前端传来的`code`参数后,服务端需借助官方提供的OAuth2.0接口进一步兑换成可用于后续操作的有效令牌或标识符。这部分逻辑通常是在PHP中编写的服务端路由里执行。 #### 后端(PHP)接收Code并请求Openid和Phone Number 一旦从前端得到了有效的`code`值,就可以准备发起HTTP GET请求至微信提供的URL以换取`access_token`、`openid`等重要数据项。以下是简化版的PHP示例代码片段说明这一过程: ```php <?php $code = $_GET['code']; // 接收前端发过来的code $appId = "your_app_id"; // 替换成自己的appId $appSecret = "your_app_secret"; // 替换成自己的appSecret $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appId&secret=$appSecret&code=$code&grant_type=authorization_code"; $response = file_get_contents($url); $data = json_decode($response, true); if (isset($data['openid'])) { echo "User Open ID is:" . $data['openid']; } else { http_response_code(400); die(json_encode(['error' => 'Invalid response from WeChat'])); } // 进一步处理得到的信息... ?> ``` 这段PHP脚本负责解析从uni-app应用程序那里接收到的`code`,并通过它去访问微信的安全认证接口从而拿到关于当前用户的更多详情,比如公开的身份识别码(`openid`)等等。 最后值得注意的一点是,在实际部署之前还需要考虑安全性因素,例如对敏感信息加密传输、防止CSRF攻击等问题。此外,也建议开发者仔细阅读最新的[微信文档](https://developers.weixin.qq.com/)了解任何可能影响集成的具体细节变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值