Vue实现Facebook第三方登录

1,803 阅读1分钟

欢迎大家进群,一起探讨学习

欢迎大家进群,一起讨论学习

微信公众号,每天给大家提供技术干货

在这里插入图片描述

博主技术平台地址


博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star


一:开发者平台配置

开发者中心

创建应用(我这里已经有了) 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 这里我们只需要里面那个appid 就可以了,也就是应用编号

在这里插入图片描述

二:代码

1,在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>

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


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

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

  <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) {
        // https://developers.facebook.com/docs/graph-api/reference/user
        FB.api('/me?fields=id,name,gender,first_name,last_name,email,birthday,hometown', dude => {
        console.log(`Good to see you, ${dude}.`)
        })
        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>

在这里插入图片描述