Vue.js中Facebook第三方登录api实现

Vue.js中Facebook第三方登录api实现

1.进入开发者https://developers.facebook.com/apps/

在这里插入图片描述

设置基本信息

在这里插入图片描述

这里我们只需要里面那个appid 就可以了,也就是应用编号

facebook 的比较方便一点,不用设置回调地址,窗口登录成功就直接关掉了.返回结果.

2.代码

a.在index.html中加入这个 sdk, appid换成 你的应用编号:

  <!--appId 写上开发者-->
  <script async defer crossorigin="anonymous" src="https://connect.facebook.net/zh_CN/sdk.js#xfbml=1&version=v3.3&appId=3356227040432352&autoLogAppEvents=1"></script>

b.在main.js中注册该组件,同时安装 npm install vue-facebook-signin-button

import FBSignInButton from 'vue-facebook-signin-button'
Vue.use(FBSignInButton)

c…然后就是在组件中使用了,可以集合到登录组件里面去:

  <fb-signin-button
        :params="fbSignInParams"
        @success="onSignInSuccess"
        @error="onSignInError">
  Sign in with Facebook
</fb-signin-button>

其中 onSignInSuccess 回调 用来获取结果的:

    methods: {
      onSignInSuccess (response) {
        // FB.api('/me', dude => {
        //   console.log(`Good to see you, ${dude.name}.`)
        // })
        console.log(response) //返回第三方的登录信息 tolen等
      },
      onSignInError (error) {
      }
    }

完整的使用 部分:

<template>
  <fb-signin-button
          :params="fbSignInParams"
          @success="onSignInSuccess"
          @error="onSignInError">
    Sign in with Facebook
  </fb-signin-button>
</template>
 
<script>
 
  export default {
    name:'facebook',
    data () {
      return {
        fbSignInParams: {
          scope: 'email,user_likes',
          return_scopes: true
        }
      }
    },
    methods: {
      onSignInSuccess (response) {
        FB.api('/me', dude => {
        	console.log(`Good to see you, ${dude.name}.`)
        })
        console.log(response) //返回第三方的登录信息 tolen等
      },
      onSignInError (error) {
      }
    }
  }
</script>
 
<style>
  .fb-signin-button {
    /* This is where you control how the button looks. Be creative! */
    display: inline-block;
    padding: 4px 8px;
    border-radius: 3px;
    background-color: #4267b2;
    color: #fff;
  }
</style>

退出登录

logou() {
  localStorage.removeItem("userid");
  localStorage.removeItem("token");
  localStorage.removeItem("avatar");
  FB.getLoginStatus(function (response) {
    console.log(response, "response");
    //判断登录状态
    if (response.status == "connected") {
      //facebook退出
      FB.logout(function (response) {});
    } else {
      //谷歌退出
      var auth2 = gapi.auth2.getAuthInstance();
      auth2.signOut().then(function () {});
    }
  });
  this.$message({
    showClose: true,
    message: "Logout success",
    type: "success",
  });
  this.$router.push({
    path: "/login",
    name: "Login",
  });
},

在这里插入图片描述

参考文档

https://blog.csdn.net/lllomh/article/details/97245322

https://lequ7.com/vuejs-zhong-facebook-di-san-fang-deng-lu-api-shi-xian-qin-ce-ke-yong.html
https://www.cnblogs.com/lngg057/p/5020192.html

facebook的sdk

https://developers.facebook.com/docs/javascript/frameworks

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值