前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Facebook第三方登录流程总结

Facebook第三方登录流程总结

作者头像
DannyHoo
发布2020-04-24 16:57:12
28.5K3
发布2020-04-24 16:57:12
举报
文章被收录于专栏:Danny的专栏Danny的专栏

授权Facebook第三方登录流程


有时候为了迅速获客,会在注册登录页支持第三方登录,比如国内一些小众论坛的qq登录

简书的社交账号登录

CSDN的社交账号登录

一些国际的软件/网站支持的比较多的第三方登录是Google第三方登录、Facebook第三方登录等。这里记录下Facebook第三方登录的过程。下面是一个Facebook第三方登录流程示例:

在这里插入图片描述
在这里插入图片描述
  1. 用户点击Facebook登录按钮,客户端(App、Browser等)向Facebook发起请求,用户在Facebook的页面输入登录信息(用户名、密码……),登录成功后Facebook回调客户端并带回用户的Facebook信息
  2. 客户端把用户登录Facebook的token发送至服务端,服务端调Facebook的token验证接口验证token是否有效
  3. 如果有效,至此Facebook第三方登录就成功了。

上面流程图只是个例子,再往下就是根据业务需求,看都需要用Facebook的那些用户信息,再在经过授权的情况下去调用Facebook接口查询。如果需要继续绑定手机号就再继续走下面绑定手机号的流程。

开发步骤


Facebook应用配置
  1. https://developers.facebook.com 开通Facebook开发者账号
  2. 创建应用
  3. 配置相关参数,在这里把AppId(应用编号)和AppSecret(应用秘钥)记下来。
  1. 添加产品

可以添加Android、IOS、web页面等类型的授权登录

前端授权
  1. 配置回调地址。这里以网页版的授权为例,如果开发网页版的Facebook授权登录,需要在Facebook后台配置有效OAuth跳转URI,就是用户在Facebook登录页面登录成功之后需要回调到部署你自己的登录页面的服务器地址
  1. 授权登录sdk,Facebook官方提供了详细的说明,也有现成的sdk和完整的demo。官方文档: https://developers.facebook.com/docs/facebook-login/web 示例:login.html
代码语言:javascript
复制
<html>
    <head>
        <script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v6.0&appId=746492673568696&autoLogAppEvents=1"></script>
        <script>
            function login() {
                FB.login(function(response){
                    console.log(response);
                });
            }
        </script>
    </head>
    <body>
        <h1>Facebook登录</h1>
        <!-- 自定义登录按钮 -->
        <button id="loginBtn" onclick="login();" >登录</button> 
    </body>
</html>

           这个网页不能直接用浏览器打开,需要部署在支持https的服务器上。

           下面是登录过程的截图

           登录成功之后可以看到控制台打印出了登录成功后Facebook返回的信息,有accessToken、userID等:

后端校验

       前端拿到登录token后,需要后端校验一下,防止别人拿其他平台的appId授权的token来请求。

       可以用 https://graph.facebook.com/debug_token?access_token={App-token}&input_token={User-token}这个接口来校验token,User-token为用户登录的token(比如上面用户登录返回的accessToken),App-token是由appId和appSecret拼接而成,格式为 {appId}%7C{appSecret}%7C就是|urlencode之后的编码。

       比如appId是746492673568696,appSecret是71cf85a8ba36c84b22bc3461e143e16b,那就可以直接用发送get请求https://graph.facebook.com/debug_token?access_token=746492673568696%7C71cf85a8ba36c84b22bc3461e143e16b&input_token=前端用户登录返回的accessToken,返回结果的格式如下

代码语言:javascript
复制
{
    "data": {
        "app_id": "746492673568696",
        "type": "USER",
        "application": "shop",
        "data_access_expires_at": 1594896505,
        "expires_at": 1587124800,
        "is_valid": true,
        "scopes": [
            "user_birthday",
            "user_likes",
            "user_photos",
            "user_friends",
            "user_status",
            "email",
            "public_profile"
        ],
        "user_id": "110029804771531"
    }
}

       其中is_valid就是token是否校验成功。如果还需要获取其他用户信息,可以参考Facebook提供的api https://developers.facebook.com/docs/graph-api/using-graph-api

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 授权Facebook第三方登录流程
  • 开发步骤
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档