uni-app 使用uni-id用户体系,将数据传入本地储存后用户状态未改变

uni-app 使用uni-id用户体系,将数据传入本地储存后用户状态未改变

产品分类:uniCloud/App

示例代码:

uni.login({  
    provider: 'univerify',  
    univerifyStyle: { // 自定义登录框样式  
        //参考`univerifyStyle 数据结构`  
    },  
    success(res) { // 登录成功  
        console.log(res.authResult);  
        uniCloud.callFunction({  
            name: "get_login", // 你的云函数名称  
            data: {  
                'access_token': res.authResult.access_token, // 客户端一键登录接口返回的access_token  
                'openid': res.authResult.openid // 客户端一键登录接口返回的openid  
            }  

        }).then(res => {  
            uni.navigateTo({  
                url:"/pages/my/my"  
            }),  
            // 登录成功,可以关闭一键登录授权界面了  
            uni.closeAuthView();  
            console.log(res.result.phoneNumber);  
            let phone  = res.result.phoneNumber;  

            db.collection("uni-id-users").where({  
                mobile:"186****635"  
            }).field("nickname,avatar_file").get().then(res=>{  
                console.log(res)  
                uni.setStorage({  
                    data:{  
                        nickname:res.result.data[0].nickname,  
                        avatar_file:res.result.data[0].avatar_file  
                    },  
                    key:"uni-id-pages-userInfo"  
                })  
            })  

        }).catch(err => {  
            // 处理错误  
            console.log(err)  
        })

操作步骤:

uni.login({ provider: 'univerify', univerifyStyle: { // 自定义登录框样式 //参考
univerifyStyle 数据结构`
},
success(res) { // 登录成功
console.log(res.authResult);
uniCloud.callFunction({
name: "get_login", // 你的云函数名称
data: {
'access_token': res.authResult.access_token, // 客户端一键登录接口返回的access_token
'openid': res.authResult.openid // 客户端一键登录接口返回的openid
}
}).then(res => {
uni.navigateTo({
url:"/pages/my/my"
}),
// 登录成功,可以关闭一键登录授权界面了
uni.closeAuthView();
console.log(res.result.phoneNumber);
let phone  = res.result.phoneNumber;

db.collection("uni-id-users").where({
mobile:"186****635"(代码中这里是正常的号码,为保证隐私加*了)
}).field("nickname,avatar_file").get().then(res=>{
console.log(res)
uni.setStorage({
data:{
nickname:res.result.data[0].nickname,
avatar_file:res.result.data[0].avatar_file
},
key:"uni-id-pages-userInfo"
})
})

}).catch(err => {
// 处理错误
console.log(err)
})

预期结果:

改变登录用户状态,再点击主页就跳转到详细的个人信息页面

实际结果:

个人页面的用户信息改变了,但是点击“主页”时就会跳转到登录页面

bug描述:

项目引入了uni_id用户体系,原始代码里写本地储存长度不为0时用户登录状态改为已登录,但是通过调用函数将数据传到本地储存之后点击主页还是会弹让登录的页面(这个时候用户页的信息发生改变了,不再是“去登录”了)

Image Image


更多关于uni-app 使用uni-id用户体系,将数据传入本地储存后用户状态未改变的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你好,你的主页使用什么来判断登陆状态?
你用的是uni-id-pages,还是你自己写的逻辑

更多关于uni-app 使用uni-id用户体系,将数据传入本地储存后用户状态未改变的实战教程也可以访问 https://www.itying.com/category-93-b0.html


引入的uni-id用户体系,里边有一个store.js的文件,文件里写的逻辑

回到顶部