微软、Google、Twitter、Facebook登录
文章目录
- 微软、Google、Twitter、Facebook登录
- 1.背景
- 2.微软登录
- (1)官方文档地址
- (2)时序图
- a、步骤10
- b、步骤12
- 3、谷歌登录
- (1)官方文档地址
- (2)时序图
- (3)步骤说明
- 步骤7
- 5、Facebook登录
- (1)官方文档
- (2)时序图
- (3)步骤说明
- 步骤5
- 步骤6
微软、Google、Twitter、Facebook登录
1.背景
用户名密码方式的登录与注册繁琐,耗时长,用户体验差。
2.微软登录
(1)官方文档地址
https://learn.microsoft.com/zh-cn/graph/auth/
(2)时序图
a、步骤10
服务器通过app获取到的授权码,请求Microsoft Graph获取令牌
POST /{tenant}/oauth2/v2.0/token
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
- 参数说明
- 响应说明
- 响应示例
{"token_type": "Bearer","scope": "user.read%20Fmail.read","expires_in": 3600,"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...","refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4..."
}
b、步骤12
通过授权码获取令牌信息
GET https://graph.microsoft.com/v1.0/me
Host: graph.microsoft.com
- 请求头部参数
- 响应示例
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","id":"12345678-73a6-4952-a53a-e9916737ff7f","businessPhones":["+1 555555555"],"displayName":"Chris Green","givenName":"Chris","jobTitle":"Software Engineer","mail":null,"mobilePhone":"+1 5555555555","officeLocation":"Seattle Office","preferredLanguage":null,"surname":"Green","userPrincipalName":"ChrisG@contoso.onmicrosoft.com"
}
3、谷歌登录
(1)官方文档地址
https://developers.google.com/identity/protocols/oauth2/native-app
(2)时序图
(3)步骤说明
步骤7
通过授权码获取访问令牌、id令牌、刷新令牌
请求方式
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
- 请求参数
- 响应参数
- 响应示例
{"access_token": "1/fFAGRNJru1FTz70BzhT3Zg","expires_in": 3920,"token_type": "Bearer","id_token":"","scope": "https://www.googleapis.com/auth/drive.metadata.readonly","refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
- id_token解析示例
{"iss": "https://accounts.google.com","azp": "1234987819200.apps.googleusercontent.com","aud": "1234987819200.apps.googleusercontent.com","sub": "10769150350006150715113082367","at_hash": "HK6E_P6Dh8Y93mRNtsDB1Q","hd": "example.com","email": "jsmith@example.com","email_verified": "true","iat": 1353601026,"exp": 1353604926,"nonce": "0394852-3190485-2490358"
}
5、Facebook登录
(1)官方文档
https://developers.facebook.com/docs/graph-api/overview
https://developers.facebook.com/docs/facebook-login/guides/%20access-tokens/debugging
(2)时序图
(3)步骤说明
步骤5
通过app获取到的access token去请求Facebook服务器,验证token的正确性
请求方式
GET https://graph.facebook.com/debug_token?access_token={client_id}%7C{appsecret}&input_token={app传递过来的access token}参数说明
响应结果示例
{"data": {"app_id": "{app-id}","type": "USER","application": "{app-name}","data_access_expires_at": 1576687825,"expires_at": 1570820400,"is_valid": true,"scopes": ["pages_show_list","public_profile"],"granular_scopes": [{"scope": "pages_show_list","target_ids": ["{page-1-app-can-access-id}","{page-2-app-can-access-id}"]}],"user_id": "10215241773831025"}
}
需要关注的参数为is_valid和user_id即可
步骤6
获取用户相关的信息,如果app那边获取的用户信息有邮箱,则这一步可以忽略
请求方式
GET https://graph.facebook.com/USER-ID?fields=id,name,email,picture&access_token=ACCESS-TOKEN请求参数
响应结果
{"id": "USER-ID","name": "EXAMPLE NAME","email": "EXAMPLE@EMAIL.COM","picture": {"data": {"height": 50,"is_silhouette": false,"url": "URL-FOR-USER-PROFILE-PICTURE","width": 50}}
}
微软、Google、Twitter、Facebook登录相关推荐
- Android 集成google 和 facebook 登录
最近公司项目刚好集成了google 和 facebook 登录,中间遇到了一些问题,所以记录下来. 主要问题如下: 1)如何集成google 和 facebook 登录,主要参考官方文档. 2)应用上 ...
- Google和facebook登录
准备工作是你要在官网创建应用,获取它们给你的id Google 登录 1,在google开发者后台创建应用 2,通过后台进行申请获取id 最近在试着用google登录,当然这只是简单的登录,直接用的它 ...
- Android 集成原生google,facebook 登录分享sdk
前言 海外版app集成三方登录分享,早期采用umeng sdk,由于googleplay对用户隐私及用户数据的使用有比较严格规定.正好 umeng sdk会后台采集app信息,触发用户隐私相关政策条款 ...
- Android中使用Kotlin实现Google、FaceBook、Twitter登录的封装
最近由于项目做国际化,所以需要接入Google.FaceBook.Twitter等各种第三方登录的Api,于是查找官网资料,申请各种key和密钥,最后成功完成了这三个第三方登录Api的功能,但是由于很 ...
- 【IOS】Firebase(Google、Facebook、Apple、Guest)登录,FCM,Apple In-App,Kakao
写在开头 记录自己接入SDK的过程.请各位指正. 最好提前做的工作 工欲善其事,必先利其器. 1.Mac电脑因Xcode而内存越来越大 弄到一半突然提示我内存不足,而且xcode还越来越卡.也是醉了. ...
- 踩坑-helloJs实现google、facebook、twitter等第三方登录
在项目中我们经常会用到第三方登录,但是每个第三方都有自己的api,hellojs解决了这一个难题,上手很简单,它把国际上的一些登录api都封装在了一起,但是必须要注意里面的一些坑,代码片段注释和文章粗 ...
- 断舍离:我彻底戒掉苹果、微软、Google、Facebook 和亚马逊之后?
如今,纵使各大科技巨头桩桩劣迹在案,但我们最难放弃的大抵仍是它们带来的各种便捷的"免费"服务. 本文则记述了告别苹果.微软.Google.Facebook 和亚马逊后一个月的真实生 ...
- 面对 Google、Facebook、微软等科技巨头的围剿,夹缝中的初创企业该何去何从?...
弱肉强食的科技竞争时代,并非只有创新的技术可以独撑一面.倘若一不小心被科技巨头盯上,他们有钱有势且性格偏执,他们手里掌握着大量资源,那么具有威胁性的初创公司或许只有待宰的命运. 近日,美国<Th ...
- Oauth 第三方授权登陆 facebook google twitter instagram
因为公司项目要用到第三方授权,所以记录学习一下 参考学习链接 OAuth 2.0 的简单解释 OAuth 2.0 的四种方式 流程图 (A)用户打开客户端以后,客户端要求用户给予授权. (B)用户同意 ...
最新文章
- 基于系统科学理论的认知科学研究进展
- 就在昨天,又一次上亿级的架构事故发生了!
- mysql 备份到别的机器_物理拷贝备份mysql到其他机器上恢复
- 凭自己本事单的身是一种怎样的体验?你根本配不上如此优秀的我!
- iOS-WKWebView的使用
- python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
- tensorflow: slim
- 可见光和红外图像的融合
- 安卓平板python编程软件下载_notepad++下载-notepad++中文版下载v7.6.2 中文增强版-西西软件下载...
- Impala SQL语句 COMPUTE STATS
- 中英文标点符号切换的组合键_切换中英文标点快捷键
- 常用的20个js简洁代码
- Java 的 FileInputStream 是否需要 close
- 编程菜鸟到大鸟--代码积累
- Logstash的grok正则匹配自定义
- 使用 Excel 和 Math.Net 进行曲线拟合和数据预测
- android浏览器插件介绍
- 谈一谈|电脑实用小技巧
- Java面试必备八股文
- Springboot 报错 template might not exist or might not be accessible by any of the configured Template