第三方登陆--接入谷歌和FaceBook

一、第三方登陆流程

在这里插入图片描述

 一、用户点击登录,前端会调用第三方的SDK,获取到对应的数据,一般会有token、userId。

二、前端拿到这些信息之后,回调自己后端服务端的接口,进行token校验。主要目的是后端得防止他人使用恶意手段,别的平台,或者是同一个平台不同账号的授权token进行登录。

三、一般拿到前端传入的token,去调用第三方提供的token校验接口,会返回对应的信息。一般都会返回userId,这个时候可以拿前端传入的userId做进一步的比较,如果token校验,第三方返回true,且userId相等。说明第三方已经授权。

四、到了这一步,就进入自己的业务流程了,比如:记录用户第三方解析出来得信息,如:邮箱之类的。之后后端在生成自己方的token,返回给前端使用即可。

二、FaceBook登录

一、前端拿到facebook返回的token后,调用后端的登录接口,后端进行token的校验,

调用FaceBook接口:
1、获取accessToke
https://graph.facebook.com/oauth/access_token?client_id= &client_secret= &grant_type=client_credentials

client_id:此处使用的是Facebook提供的appId

client_secretFacebook提供的秘钥

grant_type:client_credentials  固定参数,写死

这步目的是为了获取access_token,用于token校验

2、校验前端传来的token:这里有两种方式

https://graph.facebook.com/debug_token?access_token=  &input_token=

第一种:

access_token:放入1中获取到的access_token。

input_token:放入前端传入的token,用于校验正确性

第二种:

access_token:是由appId和appSecret拼接而成,格为 {appId}%7C{appSecret}%7C就是|urlencode之后的编码。

input_token:放入前端传入的token,用于校验正确性

二、最后会得到如下结果,有些可能有些差别,但是不管有多大差别,红色部分是肯定有的

{
    "data": {
        "app_id": "746492673568696",
        "type": "USER",
        "application": "shop",
        "data_access_expires_at": 1594896505,
        "expires_at": 1587124800,
        "is_valid": true,       注意:第三方返回的token的正确信标志
        "scopes": [
            "user_birthday",
            "user_likes",
            "user_photos",
            "user_friends",
            "user_status",
            "email",
            "public_profile"
        ],
        "user_id": "110029804771531"
    }
}
 

三、获取Facebook用户邮箱

如果在二步骤中解析出来的信息没有邮箱,我们可以通过下面的接口拿到对应的Facebook邮箱。

获取Facebook邮箱信息:
https://graph.facebook.com/userId?fields=email&access_token=

userId:此处直接放入二步骤中解析到的userId

fields:此处写死email这个单词

access_token:放入前端传入的token

最后可得到用户注册第三方的邮箱

如果你还需要获取其他信息,可参考官方文档:https://developers.facebook.com/docs/graph-api/overview 

三、谷歌登录

一、前端拿到谷歌token后,传入对应的后端接口。进行token校验。

直接调用下面接口进行token校验:
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token="

id_token:此处为前端传入token

 二、以下是返回参数,可能部分有些不同,但是红色部分是一定有的

{// These six fields are included in all Google ID Tokens."iss": "https://accounts.google.com","sub": "110169484474386276334",   第三方id"azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com","aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com","iat": "1433978353","exp": "1433981953",// These seven fields are only included when the user has granted the "profile" and// "email" OAuth scopes to the application."email": "testuser@gmail.com","email_verified": "true",       验证成功标志"name" : "Test User","picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg","given_name": "Test","family_name": "User","locale": "en"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28750.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python如何删除空白

Python 如何删除空白 在SEO优化过程中,我们需要保证我们的网页内容的质量和可读性。其中,一个重要的因素是删除空白。在Python中,我们可以使用多种方法来删除空白,下面我们将介绍一些方法并讨论它们的优缺点。 方法一&#xff1…

chatgpt赋能python:如何使用Python创建空白图?

如何使用Python创建空白图? 对于数据分析师、图像处理专家或任何对Python编程语言感兴趣的人来说,创建空白图可能是一个常见的任务。这是非常合理的,因为Python是一种非常通用的编程语言,提供了很多模块和库,可用于处…

数字水印(DWT算法Python实现)

全部代码: """------------------------- Project: DWT数字水印嵌入、提取 Author: Tysay Environment: Python3.8 VsCode History: 2022/12/01 -------------------------""" import cv2 import pywt import numpy a…

水印,数字水印,频域水印(隐形水印)很麻烦!用这个分分钟搞定!

水印,你在很多公司图片都会看到,里面都会加入图片都会有显式水印,或者半隐形水印。平常加水印,只要将两张图片色值混合就没问题了 import cv2 import numpy as np import matplotlib import matplotlib.pyplot as plt img cv2.…

什么是数字水印

经常有文章把数字签名和数字水印“傻傻分不清”,那今天就介绍一下数字水印。 一、数字水印技术原理 数字水印是一种信息隐藏技术,它利用人体感官的限制,将数字信号,如图像、文字、符号、数字等一切可以作为标记、标识的信息与原…

数字图像水印处理

数字图像水印处理 一个处理数字图像水印的系统,该系统可以实现添加可见水印,添加不可见水印,识别水印,提取可见水印,提取不可见水印,打开、保存图片等功能。(这里的水印识别指的是识别自己添加的水印) 添…

文心大模型3.5勇夺三个冠军领跑,中文完爆GPT-4!国际权威报告7项满分「全班第一」...

新智元报道 编辑:编辑部 【新智元导读】这场百模大战,究竟是谁胜出?国际权威IDC发布大模型技术报告中,文心大模型3.5拿下7个满分,三个绝对第一。 一觉醒来,好不热闹,Meta深夜投出重磅炸弹&…

文心一言APP来了

金磊 丰色 发自 凹非寺量子位 | 公众号 QbitAI 终于,正版百度文心一言APP上架苹果商店了! (此前百度因为盗版文心一言APP泛滥,还起诉过苹果公司及相关开发团队。) 这般“新鲜出炉”的工具,我们当然要率先体…

文心一言APP国区可下载!免费体验120+玩法,PPT大纲Excel公式一键生成

点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf 终于,正版百度文心一言APP上架苹果商店了! (此前百度因为盗版文心一言APP泛滥&#xff0…

文心一言APP国区可下载,免费体验120+玩法,PPT大纲Excel公式一键生成

来源:量子位 | 公众号 QbitAI 终于,正版百度文心一言APP上架苹果商店了! (此前百度因为盗版文心一言APP泛滥,还起诉过苹果公司及相关开发团队。) 这般“新鲜出炉”的工具,我们当然要率先体验一把…

chatgpt赋能python:Python给电影打分-如何使用Python评估您最喜爱的电影

Python给电影打分 - 如何使用Python评估您最喜爱的电影 Python是一种流行的编程语言,广泛用于数据科学和机器学习。但是,您是否知道您可以使用Python为您最喜爱的电影打分并评估其受欢迎程度?在这篇文章中,我们将介绍如何使用Pyt…

文心千帆大模型平台,一站式企业级大模型平台

文心千帆大模型平台,一站式企业级大模型平台 0. 前言1. 人工智能发展历程1.1 传统机器学习1.2 深度学习1.3 大模型时代 2. 文心千帆2.1 文心千帆介绍2.2 文心千帆应用场景2.3 文心千帆平台优势 3. 文心千帆初体验3.1 注册流程3.2 创建应用3.3 在线测试3.4 数据服务3…

【自我升级链】所谓的傅盛认知升级

所有学习上的成功,都只依靠两件事 – 策略和坚持,而坚持本身就是最重要的策略! 前段时间读的书,看的一些文章里面,全都在提"认知"这个词。 但是,“认知”这个词,我是在2016年的时候就…

傅盛:AI是企业弯道超车的机会,大家在同一起跑线上

2019-10-20 11:58:08 第六届世界互联网大会于10月20日-22日在浙江乌镇召开。 猎豹移动CEO傅盛表示,从收入的相对值增长来看,猎豹的AI业务的增长还是挺快,“但是要短期内达到猎豹50亿级的盘子是不太可能的”。 傅盛认为,AI是企业弯…

从猎豹CEO傅盛和韩寒的没落,谈谈为什么曾经优秀的人突然变得平庸?

点赞再看,养成习惯,微信搜一搜【findyi】关注这个喜欢写情怀的程序员。 回复【1】获得程序员职场晋升PPT一份 一个读者的提问:洋哥,我从小都是学霸,本硕都是985,计算机科班出身,但进入职场后却始…

金山网络CEO傅盛: 产品设计, 简单才是王道

本文来自 http://www.36kr.com/p/151814.html 2012 年 9 月 8 日—9 日,中国软件开发者大会在北京国家会议中心举行,金山网络 CEO 傅盛在会上发表题为“简单唯美”的演讲,他表示,项目要想成功,产品设计一定要足够简单&…

傅盛认知三部曲之一:所谓成长就是认知升级

我一直在思索,怎么才能让一家公司更快地成长?一个人怎么才能从一群人的竞争当中脱颖而出? 1、人的四种认知状态 最近我看了一幅图,我在其上加了一个数字注脚。 这是一个人认知的四种状态——“不知道自己不知道”,“知…

【深度好文】强烈推荐:傅盛认知三部曲!

转载傅盛认知三部曲的原因 最近看到 傅盛 大佬关于认知的几篇文章,感觉实在牛逼,在此转载一下。 大家优先点击下面的几个链接查看原文吧!!!!!! 傅盛认知三部曲之一:所谓…

张鹏对话傅盛:产业互联网时代需要什么样的机器人?

12月21日,备受瞩目的极客公园创新大会十周年活动继续在北京举行。作为中国大型的创新者社区,全球科技、科学、文化艺术、创造力等领域里的科技主义者们在此汇聚一堂,共同为中国极客奉献思维升级的盛宴。猎豹移动董事长兼CEO傅盛受邀出席大会并…

傅盛:我为什么要不顾一切的努力?

猎豹最近不太好,刚被谷歌下架了45款产品。作为CEO,傅盛一定很难受,更要命的是,这次舆论站在了他的对立面,不少落井下石的人和媒体,一时间全部出动。 傅盛在360工作过,我加入360的时候恰逢傅盛和…