uniapp获取用户信息

新接口getUserProfileFn内置login,如果必须要login返回的参数要隔离开 vue3书写要对按钮配置属性
<button @click="logintou" data-eventsync="true" class="main-login-bottom">授权登录</button>
——————————————————
const app = getApp()
export let loginFn = () => {
    return new Promise((resolve, reject) => {
        uni.login({
            force: true,
            success(res) {
                console.log(`login 调用成功`, res)
                resolve(res)
            },
            fail(res) {
                console.log(`login 调用失败`)
                reject(res)
            }
        })
    })
}

export let getUserProfileFn = () => {
    return new Promise((resolve, reject) => {
        uni.getUserProfile({
            desc: '获取用户信息',
            withCredentials: false,
            force: true,
            success: (res) => {
                console.log('getUserProfile 调用成功:', res)
                resolve(res)
            },
            fail(res) {
                console.log('getUserProfile 调用失败', res)
                reject(res)
            }
        })
    })
}
export let getCookieFn = (loginRes, {
    nickName,
    avatarUrl,
    gender
}) => {
    app.globalData.api.index
        .getList({
            bodyData: {
                m: 'Tiktok',
                c: 'Public',
                a: 'douyinLogin',
                mchid: 1
            },
            data: {
                anonymous_code: loginRes.anonymousCode,
                code: loginRes.code,
                nickname: nickName,
                headimg: avatarUrl,
                sex: 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.setStorageSync('yjtoken', fan.data.data.cookie)
            loginShow.value = false
        })
}

export let logintou = async () => {
    try {
        const userProfileRes = await getUserProfileFn()
        app.globalData.info = userProfileRes.userInfo
        const loginRes = await loginFn()
        await getCookieFn(loginRes, userProfileRes.userInfo)
    } catch (error) {
        // 处理错误
    }
}

posted @   jialiangzai  阅读(182)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示