uniapp app端一键微信登录和小程序端一键微信登录

        <view class="wx">
            <view class="subtitle">微信快捷登录</view>
            <!-- #ifdef MP-WEIXIN -->
            <text class="iconfont icon-weixin" @tap="wxLogin"></text>
            <text>微信端</text>
            <!-- #endif -->
            <!-- #ifdef  H5 || APP-PLUS -->
            <text class="iconfont icon-weixin" @tap="appLogin"></text>
            <text>app端</text>
            <!-- #endif -->
        </view>

//小程序登录 begin登录
// 逻辑:登录 > 拿到code > 后端通过code获取sessionKey、openid(unionid)等

        wxLogin(e) {
            let _this = this;
          uni.login({
                    provider: 'weixin',
                    success: function(res) {
                        console.log(res);
                        if (res.code) {
                            let code = res.code;
                            //将用户登录code传递到后台置换用户SessionKey、OpenId等信息
                            //...写用code置换SessionKey、OpenId的接口
                            // _this.$http.post("/api/user/login", {code:code})
                            //     .then(res => {
                            //         let openId= res.openId;
                            //         _this.wxSubmit(openId)
                            //     })
                            //     .catch(err => {
                            //         _this.$ant.toast('登录失败')
                            //     });

                        } else {
                            uni.showToast({
                                title: '登录失败!',
                                duration: 2000
                            });
                            console.log('登录失败!' + res.errMsg)
                        }
                    },
                });

        }

// app登录逻辑  app端能直接拿到openId

appLogin() {
                var that = this;
                uni.getProvider({
                    service: 'oauth',
                    success: function(res) {
                        console.log(res.provider);
                        //支持微信、qq和微博等
                        if (~res.provider.indexOf('weixin')) {
                            uni.login({
                                provider: 'weixin',
                                success: function(loginRes) {
                                    console.log("App微信获取用户信息成功", loginRes);
                                    // 获取用户信息
                                    uni.getUserInfo({
                                        provider: 'weixin',
                                        success: function(infoRes) {
                                            console.log('-------获取微信用户所有-----');
                                            console.log(infoRes.userInfo.openId);
                                            console.log(JSON.stringify(infoRes.userInfo));
                                                // 提交信息
                                                that.wxSubmit(infoRes.userInfo.openId)
                                                
                                        }
                                    });
                                    // that.getApploginData(loginRes) //请求登录接口方法
                                },
                                fail: function(res) {
                                    console.log("App微信获取用户信息失败", res);
                                }
                            })
                        }
                    }
                });
            },

记录时间2021-07-13,亲测有效,有用的话,麻烦给点个赞。

posted @ 2021-07-13 11:09  BuildYourDream  阅读(1887)  评论(0编辑  收藏  举报