uni-app 第三方授权登录

Posted jerry_min

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uni-app 第三方授权登录相关的知识,希望对你有一定的参考价值。

注意:在使用uni-app第三方登录时采用的是手机真机调试

授权登录html

<view type="primary" class="login_type" v-for="(value,key) in providerList" @click="tologin(value)"
                :key="key">
       <view class="login_type_name">{{value.name}}</view>
</view>
<script>
    import {
        mapState,
        mapMutations
    } from \'vuex\'

    export default {
        data() {
            return {
                title: \'login\',
                providerList: [],
                openid:\'\'

            }
        },
        computed: {
            ...mapState([\'hasLogin\'])
        },
        onLoad() {
            uni.getProvider({
                service: \'oauth\',//服务类型
                success: (result) => {
                    this.providerList = result.provider.map((value) => {
                        let providerName = \'\';
                        switch (value) {
                            case \'weixin\':
                                providerName = \'微信\'
                                break;
                            case \'qq\':
                                providerName = \'QQ\'
                                break;
                            case \'sinaweibo\':
                                providerName = \'微博\'
                                break;
                        }
                        return {
                            name: providerName,
                            id: value
                        }
                    });

                },
                fail: (error) => {
                    console.log(\'获取登录通道失败\', error);
                }
            });
        },
        methods: {
            ...mapMutations([\'login\']),
            tologin(provider) {
                uni.login({
                    provider: provider.id,
                    // #ifdef MP-ALIPAY
                    scopes: \'auth_user\', //支付宝小程序需设置授权类型
                    // #endif
                    success: (res) => {
                        console.log(\'login success:\', res);
                        this.openid=res.authResult.openid;
                        uni.setStorageSync(\'openid\', res.authResult.openid);
                        // 更新保存在 store 中的登录状态
                        this.login(provider.id);
                //根据openid获取当前授权的信息 uni
.getUserInfo({ provider: this.loginProvider, success: (result) => { console.log(result); var _this=this; // // 将第三方信息添加入库 this.$api.baseRequest("partyRegister", "POST", { patient_name: result.userInfo.nickName, openid: _this.openid, figure_url: result.userInfo.avatarUrl }).then(res => {           返回值 }); }, fail: (error) => { // console.log(\'getUserInfo fail\', error); uni.navigateTo({ url: "../login/login" }) } }); // // #ifdef MP-WEIXIN // console.warn(\'如需获取openid请参考uni-id: https://uniapp.dcloud.net.cn/uniCloud/uni-id\'); // #endif }, fail: (err) => { console.log(\'login fail:\', err); } }); }, formSubmit: function(e) { var phone_number = e.detail.value.phone_number; var password = e.detail.value.password; if (phone_number.length == \'\') { uni.showToast({ title: \'手机号必填\', icon: \'none\' }) return false; } // 验证手机格式未完成 if (phone_number.length != 11) { uni.showToast({ title: \'手机号格式有误\', icon: \'none\' }) return false; } if (password.length == \'\') { uni.showToast({ title: \'密码必填\', icon: \'none\' }) return false; } }, } } </script> <style> @import "./login.css"; </style>

 

 

 

获取授权信息

// uni.getUserInfo({
            //     provider: this.loginProvider,
            //     success: (result) => {
            //         console.log(result)
            //         // 用户名称
            //         this.patient=result.userInfo.nickName;
            //         this.openid=result.userInfo.openId;
            //         // 用户头像
            //         this.info.image=result.userInfo.avatarUrl;
            //         this.hasUserInfo = true;
            //         this.userInfo = result.userInfo;        
            //     }
            // });

 

以上是关于uni-app 第三方授权登录的主要内容,如果未能解决你的问题,请参考以下文章

uni-app授权第三方登录(微信授权登录)

uni-app授权第三方登录(微信授权登录)

uni-app授权第三方登录(微信授权登录)

uni-app 微信小程序授权登录

uni-app第三方登陆-微信

uni-app H5授权微信登录怎么获取code?