uniapp中使用微信登录app

之前经手的一个uniapp开发的app剩下一个微信登录的功能,之前没有独立搞过这一块,在网上查了很多资料已解决。记录一下实现的步骤,方便下一次copy。

一、首先在Hbuilder中配置微信授权登录
App模块配置中勾选OAuth -->微信登录 :填写appid和appsecret

二、获取appid和appsecret
1、appid和appsecret是在微信开放平台中获取的。首先需要去微信开放平台注册账号,创建移动应用(下图)

2、 创建移动应用需要填写包名和签名(后续会介绍如何获取),按照提示填写完成 创建应用。

3、查看应用的appid和appsecret

三、获取第二步中的应用包名和应用签名
1、应用包名是HBuilder打包时的Android包名:随便填写,遵循 xxx.xxx.xxx各式,不允许大写字母

2、应用签名:点击上图的使用自有证书选项 点击前往生成证书页面

这一步也比较简单,按照文档上步骤来就行。特别需要注意的是上图中的md5码就是第二步中需要使用到的签名,忘记了可以利用上面查看证书信息的指令查看。密码也不要忘记了,打包app的时候需要输入密码。

四、登录按钮代码
上面的步骤都是为了获取微信授权的,下面开始写页面代码,比较简单

<template>
    <view class="page">
        <view class="login">
            <!-- <view class="header"><image src="/static/img/weixin.png"></image></view> -->
            <view class="content">
                <view class="title">legao 申请使用</view>
                <view class="info">你的微信头像、昵称、地区和性别信息</view>
            </view>
            <button class="bottom" type="primary" open-type="getUserInfo" withCredentials="true" lang="zh_CN" @click="handleThirdLoginApp">授权登录</button>
            <button type="default" class="refuse" @click="goback">拒绝</button>
        </view>
        <u-toast ref="uToast" />
    </view>
</template>
<script>
export default {
    data() {
        return {};
    },
    methods: {
        goback() {
            uni.navigateTo({
                url: '/pages/login/login'
            });
        },
        //app第三方登录

        handleThirdLoginApp() {
            var that = this;
            uni.getProvider({
                service: 'oauth',
                success: function(res) {
                    if (~res.provider.indexOf('weixin')) {
                        uni.login({
                            provider: 'weixin',
                            success: function(loginRes) {
                                // loginRes 包含access_token,expires_in,openid,unionid等信息
                                //这里只需要把这些数据传递给后台,让后台去请求微信的接口拿到用户信息就可以了,
                                //然后返回登录状态
                                that.getApploginData(loginRes); //请求登录接口方法
                            },

                            fail: function(res) {
                                that.$refs.uToast.show({
                                    title: '微信登录失败',
                                    type: 'warning'
                                });
                            }
                        });
                    }
                }
            });
        },

        //请求登录接口方法

        getApploginData(data) {
            var that = this;
            //这边是前端自己去调微信用户信息的接口,根据接口需要请求,如果不需要前端去获取的话就交给后端,可省去次操作
            uni.request({
                url: 'https://api.weixin.qq.com/sns/userinfo?access_token=' + data.authResult.access_token + '&openid=' + data.authResult.openid,
                method: 'GET',
                dataType: 'json',
                header: {
                    'content-type': 'application/x-www-form-urlencoded' // 默认值
                },

                success(res) {
                    console.log('【登录回调啾啾啾】', res);
                    //前端调用微信接口,获取到微信用户的基本信息,传递给后台
                    that.$api.wxloginThred({ unionid:data.authResult.unionid,image:res.data.headimgurl, nickname:res.data.nickname,}).then(res=>{
                        console.log(res)
                        if (res.statusCode == 200) {
                            uni.setStorageSync('userInfo', JSON.stringify(res.data));
                            uni.setStorageSync('logined', 1);
                            that.$store.commit('SET_STATE', ['logined', true]);
                            that.$store.commit('SET_STATE', ['userInfo', res.data]);
                            uni.showToast({
                                title: '登陆成功',
                                duration: 2000
                            });
                            //登录成功 跳转到首页
                            that.checkFirst()
                        }
                    });
                },
                fail() {
                    that.$refs.uToast.show({
                        title: '微信登录失败',
                        type: 'warning'
                    });
                }
            });
        },
        checkFirst(){
            this.$api.checkFirst({}).then(res=>{
                if(res.data == '1'){
                    setTimeout(() => {
                        uni.navigateTo({
                            url: '/pages/login/begin'
                        });
                    }, 2000);
                }else{
                    setTimeout(() => {
                        uni.navigateTo({
                            url: '/pages/index/index'
                        });
                    }, 2000);
                }
            })
        },
    }
};
</script>

来源:https://blog.csdn.net/weixin_40305713/article/details/115126662

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容