首页 > 其他分享 >uniapp登录板块封装(旧接口getUserInfo)

uniapp登录板块封装(旧接口getUserInfo)

时间:2023-12-03 10:46:21浏览次数:53  
标签:uniapp getUserInfo loginRes 封装 success res app userInfo uni

点击查看代码
	// 授权并获取用户信息
	const authorizeAndGetUserInfo = (loginRes) => {
		uni.getUserInfo({
			success(res) {
				// 用户信息获取成功,处理登录业务逻辑
				app.globalData.info = res.userInfo;
				app.globalData.api.index.getList({
					bodyData: {
						m: 'Tiktok',
						c: 'Public',
						a: 'douyinLogin',
						mchid: 1,
					},
					data: {
						anonymous_code: loginRes.anonymousCode,
						code: loginRes.code,
						nickname: res.userInfo.nickName,
						headimg: res.userInfo.avatarUrl,
						sex: res.userInfo.gender
					}
				}).then(fan => {
					app.globalData.token = fan.data.data.cookie
					app.globalData.info.encid = fan.data.data.encid
					uni.setStorageSync('info', app.globalData.info)
					// 如果需要提示用户登录成功,可以取消以下代码的注释
					// uni.showToast({
					//   title:'登录成功',
					//   icon:'success'
					// })
					// 假设这是一个响应式变量来控制登录显示
					if (loginShow && loginShow.value !== undefined) {
						loginShow.value = false;
					}
				})
			},
			fail(err) {
				uni.showToast({
					title: '未获取到您的信息,不能正常使用',
					icon: 'none'
				})
				uni.openSetting({
					success(res) {
						if (res.authSetting && res.authSetting['scope.userInfo']) {
							authorizeAndGetUserInfo(loginRes) // 用户开启权限后,重新调用授权并获取用户信息的函数
						}
					}
				})
			}
		})
	}

	const login = () => {
		uni.getProvider({
			service: 'oauth',
			success: function(providerRes) {
				uni.login({
					provider: providerRes.provider[0],
					success: function(loginRes) {
						authorizeAndGetUserInfo(loginRes); // 使用抽离出来的函数来进行授权并获取用户信息
					},
					fail: function() {
						uni.showToast({
							title: '登录失败,请重试',
							icon: 'none'
						});
					}
				});
			},
			fail: function() {
				uni.showToast({
					title: '获取服务提供者失败,请重试',
					icon: 'none'
				});
			}
		});
	}

标签:uniapp,getUserInfo,loginRes,封装,success,res,app,userInfo,uni
From: https://www.cnblogs.com/zsnhweb/p/17872663.html

相关文章

  • 七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHel
    前言上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-netORM并封装常用方法(SQLiteHelper)。七天.NET8操作SQLite入门到实战详细教程第一天SQLite简介第二天在Windows上配置SQLite环境第三天SQLite快速入门第四天EasySQLite......
  • .net core(web api) 后台 +uniapp移动端自动更新
    移动端采用uniapp开发后台采用.netcore先到插件市场找到对应的插件  然后将插件安装到 然后在移动端项目pages.json"path":"uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update","style":{"app-plus":{"......
  • uniapp关于uni.getUserProfile的使用
    点击查看代码 <button@click="getMy"data-eventsync="true">获取信息</button> letgetMy=()=>{ if(uni.getUserProfile){ console.log('可以用'); uni.getUserProfile({ lang:'zh_CN', desc:'......
  • Shell封装日志函数
       使用echo打印输出日志严重影响观瞻,想打印时间戳就得每次都得把date命令加上,想自动加点别的东西真是好麻烦,封装一个日志函数,方便脚本在运行的时候输出日志,超级方便1、简单定义一个log函数function_log(){echo-e"${@}"}_log"helo"用的时候直接把想打印的信......
  • 当多个使用弹窗类组件,可使用这种方式封装组件。(以下使用antd-vue、vue3)
    1.代码点击查看代码<template><slot:openDialog="openDialog":closDialog="modalCancel"></slot><a-modalv-model:open="open"title="BasicModal"@cancel="modalCancel"><templat......
  • uniapp使用微信jssdk自定义分享
    前言提示:本文记录的是使用uniapp开发的H5+APP项目,H5端使用微信自定义分享功能,文中有关APP的兼容,如果不需要兼容APP的可以忽略一、引入首先安装jweixin-module包npminstalljweixin-module--save二、封装工具方法为了方便使用,新建一个wechat.js文件://#ifdefH5impo......
  • js精度丢失的问题,利用lodash函数库重新封装
    functionroundAndPad(num,decimalPlaces){  varrounded=_.round(num,decimalPlaces); //使用Lodash的_.round函数四舍五入  varstr=rounded.toString();  vardecimalIndex=str.indexOf('.');  console.log("str:",str);  console.lo......
  • JacksonUtils - 封装基于 jackson 的 json 转换逻辑代码
    JacksonUtils.javapackageorg.example.util;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.JavaType;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;im......
  • C/C++ Zlib库封装MyZip压缩类
    Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-LoupGailly和MarkAdler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是基于DEFLATE算法,这是一种无损数据压缩算法,通常能够提供......
  • uniapp开发App从开发到上架全过程
    ​当我们的APP开发完毕,最终交付的时候,必然要经历的一个环节,就是APP上架,国内APP上架一般为IOS端appstore上架,安卓端应用商店比较多,最常见的应用商店有华为应用商店、小米应用商店、OPPO应用商店、VIVO应用商店、应用宝应用商店等。在开始上架前,需要准备好相应的材料,安卓端需要准......