vue+h5 plus 第三方登录


 
html:

<div class="box" style="margin-top:0;" @click="getLogin('weixin')">微信登录</div>
<div class="box" style="margin-top:0;" @click="getLogin('qq')">QQ登录</div>
<div class="box" style="margin-top:0;" @click="getLogin('sinaweibo')">微博登录</div>

 




data:

oauth: null,
auths: !window.localStorage.getItem('auths') ? null : JSON.parse(window.localStorage.getItem('auths')),
Params: {}, // 第三方登录参数

 

 

 
 methods:
  
    //第三方登录
      getLogin(type) {
        this.oauth = type;
        plus.oauth.getServices(success => {
          this.auths = success
          window.localStorage.setItem('auths', JSON.stringify(success))
          this.$toast(`正在获取第三方登录...`);
          this.oauthLogin(type)
        }, error => {
          plus.nativeUI.alert("获取登录授权服务列表失败:" + JSON.stringify(error));
        })
      },
      // 获取登录认证
      oauthLogin(type) {
        console.log('======type' + type);
        var s;
        this.auths.forEach((item, index) => {
          if (this.auths[index].id == type) {
            s = this.auths[index]
          }
        })
        if (!s.authResult) {
          s.login(res => {
            // this.$toast('第一个微信登录')
            this.authUserInfo(type);
          }, error => {
            plus.nativeUI.alert('error' + JSON.stringify(error));
          })
        } else {
          this.authUserInfo(type);
          // this.$toast('第二个微信登录,已授权登录');
        }
      },
      // 获取授权用户信息
      authUserInfo(type) {
        var s;
        this.auths.forEach((item, index) => {
          if (this.auths[index].id == type) {
            s = this.auths[index]
          }
        })
        // console.log('===========s' + JSON.stringify(s));
        if (s.authResult) {
          s.getUserInfo(res => {
            this.Params = {
              username: s.userInfo.nickname,
              avatar: s.userInfo.headimgurl,
              sex: s.userInfo.sex,
              openid: s.userInfo.openid,
              longitude: this.longitude,
              latitude: this.latitude,
              type: 2
            }
       this.register(s.authResult.openid) console.log(
this.Params) }, error => { plus.nativeUI.alert(JSON.stringify(error)); this.$toast('失败报错'); }) } },
   //第三方登录
      register(openid){
        let sign;//标记

        if(this.oauth == 'weixin'){ sign = 2; } if(this.oauth == 'sinaweibo'){ sign = 3; } if(this.oauth == 'qq'){ sign = 4; } let params = { type:sign,//1手机 2微信 3微博 4qq wx_openid:sign == 2?openid:'', wb_openid:sign == 3?openid:'', qq_openid:sign == 4?openid:'', } this.$post("/user/user/register", params).then(res => { if (!res.error_code) { console.log(res.response_data,'res') localStorage.setItem('access_token',res.response_data.access_token); this.getUserInfo() } else { this.$toast(res.error_msg); console.log(res.error_msg,'error') } }) },
 

 


					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM