uni-app授权第三方登录(微信授权登录)

1 篇文章 0 订阅
1 篇文章 0 订阅

APP微信授权登录需要到微信开放平台申请,在HBuilderX配置APP SDK中微信登录的appId,另外需要跟小程序、公众号授权账号互通的话也需要在微信开放平台申请,这是需要付费的呦(300元)

官方手册地址: https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo

1、在微信公众平台申请应用,获取相应的appid和appsecret

2、在HBuilderX配置APP SDK中微信登录的appId和appsecret
在这里插入图片描述

App端登陆相关的SDK需要在manifest中配置:

  1. 打开 manifest.json -> App模块权限配置,勾选 OAuth(登陆鉴权)。
  2. 打开 manifest.json -> App
    SDK配置,查看到登陆鉴权。在说明中有蓝色链接,其中包括向微信、QQ、微博等平台申请sdk的链接。
  3. 向微信、QQ、微博等平台申请到sdk的信息后,回填到manifest里。
  4. 这些配置需要打包生效,真机运行仍然是HBuilder基座的设置,可使用自定义基座包。离线打包请参考离线打包文档在原生工程中配置。
  5. 配置并打包后,通过uni.getProvider可以得到配置的结果列表,注意这里返回的是manifest配置的,与手机端是否安装微信、QQ、微博无关。

如果手机端未安装QQ、微信、微博 调用时会启动这些平台的wap页面登陆,如果已安装相应客户端,会启动它们的客户端登陆。

实例

uni.getProvider({
			service: 'oauth',
			success: function(res) {
				console.log(res.provider);
				// 手机app支持微信、qq和微博等
				if (~res.provider.indexOf('weixin')) {
					console.log('weixin');
					uni.login({
						provider: 'weixin',
						success: function(loginRes) {
							console.log(JSON.stringify(loginRes));
							// 获取用户信息
							uni.getUserInfo({
								provider: 'weixin',
								success: function(infoRes) {
									console.log('-------获取微信用户所有-----');
									console.log(JSON.stringify(infoRes.userInfo));
									const userInfo = infoRes.userInfo
									getApp().globalData.userInfo = userInfo;
									getApp().globalData.wxCode = userInfo.nickName;
									console.log(getApp().globalData.userInfo);
									uni.switchTab({
										url: '/pages/my/my'
									})
								}
							});
						},
						fail: function(res) {
							console.log(res)
							uni.showToast({
								icon: 'none',
								title: '登陆失败,请确保已安装或已登录微信',
								//title: res.errMsg,
								duration: 2000
							});
							setTimeout(function() {
								uni.switchTab({
									url: '/pages/my/my'
								})
							}, 2000)
						}
					});
				}
			}
		});
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
uni-app 是一款跨平台应用开发框架,既支持生成 App,也支持生成各个平台的小程序,其中与微信小程序的授权方法有一些不同。 首先,对于 App 来说,可以使用 uni-app 提供的登录模块,该模块支持微信、支付宝等第三方平台的授权登录。对于微信授权登录,可以通过以下步骤实现: 1. 在 uni-app 的项目中安装并引入 uni-login 模块:`npm install @dcloudio/uni-login` 2. 在需要授权的页面中,添加登录按钮或其它触发授权的元素。 3. 在点击登录按钮的事件处理函数中,调用 uni.login 方法进行微信登录授权。 4. 在 uni.login 的回调中,可以通过返回的 code 或 token 等信息进行登录验证、获取用户信息等操作。 而对于生成微信小程序,uni-app 也提供了相关的授权方式。在 uni-app 中,可以使用 openid 和 unionid 来进行用户标识和登录验证。具体的授权方法如下: 1. 在微信小程序的 app.json 文件中,将 `"appid"` 字段设置为你的小程序的 AppID。 2. 在 uni-app 的项目中引入并使用 uni.login 方法,通过该方法登录获取 code。 3. 将获取到的 code 发送至后台,后台通过 code 调用微信的 API 获取 openid 和 session_key。 4. 后台获取到 openid 和 session_key 后,可以将其存储在数据库中,用于用户标识和登录验证。 总之,无论是在 uni-app 生成 App 还是小程序,都可以通过 uni-login 模块实现微信授权登录。对于 App,可以直接使用登录模块进行授权;对于小程序,可以通过 openid 和 session_key 实现用户标识和登录验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值