uniapp微信小程序授权登录

    authLogin() {
        ////弹窗授权
        //showModal用于触发uni.getUserProfile弹窗
        uni.showModal({
            title: '授权登录',
            content: '是否授权登录微信小程序?',
            success: () => {
                uni.getUserProfile({
                    desc: '登录后可同步数据',
                    lang: 'zh_CN',
                    success: (infoRes) => {
                        console.log('用户信息-----------', infoRes)
                        //获取code
                        uni.login({
                            provider: 'weixin',
                            success: (loginRes) => {
                                console.log('获取code-----------', loginRes)
                                //调用接口传递参数
                                let parames = {
                                    code: loginRes.code,
                                    encryptedData: infoRes
                                        .encryptedData,
                                    iv: infoRes.iv,
                                    signature: infoRes.signature,
                                    rawData: infoRes.rawData
                                };
                                console.log('将参数传给后端-----------', parames)
                                uni.request({url: '',data: {parames: parames,}}).then((res) => {
                                    //获取到 openid 和 session_k后,自己的逻辑
                                    if(res.code==1){
                                        console.log('授权登录成功', res.data);
                                        console.log(res.data.openid);
                                        console.log(res.data.session_key);
                                    }
                                });
                            },
                            fail: function(err) {
                                uni.showToast({
                                    icon: 'none',
                                    title: '授权失败'
                                })
                            }
                        });
                    },
                    fail: function(err) {
                        uni.showToast({
                            icon: 'none',
                        title: '授权失败'
                        })
                    }
                });
            }
        })


        //未弹窗授权
        // 获取用户信息, 传给后端换取openid / uuid
        uni.getUserInfo({
            provider: 'weixin',
            success: function(infoRes) {
                console.log('infoRes', infoRes)
                //获取code
                uni.login({
                    provider: 'weixin',
                    success: (loginRes) => {
                        console.log('loginRes', loginRes);
                        //调用接口传递参数
                        let parames = {
                            code: loginRes.code,
                            encryptedData: infoRes.encryptedData,
                            iv: infoRes.iv,
                            signature: infoRes.signature,
                            rawData: infoRes.rawData
                        };
                    },
                    fail: function(err) {
                        uni.showToast({
                            icon: 'none',
                            title: '授权失败,请重新授权'
                        })
                    }
                });
            },
            fail: function(err) {
                uni.showToast({
                    icon: 'none',
                    title: '授权失败,请重新授权'
                })
            }
        });

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容