文章目录

  • 微软、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登录相关推荐

  1. Android 集成google 和 facebook 登录

    最近公司项目刚好集成了google 和 facebook 登录,中间遇到了一些问题,所以记录下来. 主要问题如下: 1)如何集成google 和 facebook 登录,主要参考官方文档. 2)应用上 ...

  2. Google和facebook登录

    准备工作是你要在官网创建应用,获取它们给你的id Google 登录 1,在google开发者后台创建应用 2,通过后台进行申请获取id 最近在试着用google登录,当然这只是简单的登录,直接用的它 ...

  3. Android 集成原生google,facebook 登录分享sdk

    前言 海外版app集成三方登录分享,早期采用umeng sdk,由于googleplay对用户隐私及用户数据的使用有比较严格规定.正好 umeng sdk会后台采集app信息,触发用户隐私相关政策条款 ...

  4. Android中使用Kotlin实现Google、FaceBook、Twitter登录的封装

    最近由于项目做国际化,所以需要接入Google.FaceBook.Twitter等各种第三方登录的Api,于是查找官网资料,申请各种key和密钥,最后成功完成了这三个第三方登录Api的功能,但是由于很 ...

  5. 【IOS】Firebase(Google、Facebook、Apple、Guest)登录,FCM,Apple In-App,Kakao

    写在开头 记录自己接入SDK的过程.请各位指正. 最好提前做的工作 工欲善其事,必先利其器. 1.Mac电脑因Xcode而内存越来越大 弄到一半突然提示我内存不足,而且xcode还越来越卡.也是醉了. ...

  6. 踩坑-helloJs实现google、facebook、twitter等第三方登录

    在项目中我们经常会用到第三方登录,但是每个第三方都有自己的api,hellojs解决了这一个难题,上手很简单,它把国际上的一些登录api都封装在了一起,但是必须要注意里面的一些坑,代码片段注释和文章粗 ...

  7. 断舍离:我彻底戒掉苹果、微软、Google、Facebook 和亚马逊之后?

    如今,纵使各大科技巨头桩桩劣迹在案,但我们最难放弃的大抵仍是它们带来的各种便捷的"免费"服务. 本文则记述了告别苹果.微软.Google.Facebook 和亚马逊后一个月的真实生 ...

  8. 面对 Google、Facebook、微软等科技巨头的围剿,夹缝中的初创企业该何去何从?...

    弱肉强食的科技竞争时代,并非只有创新的技术可以独撑一面.倘若一不小心被科技巨头盯上,他们有钱有势且性格偏执,他们手里掌握着大量资源,那么具有威胁性的初创公司或许只有待宰的命运. 近日,美国<Th ...

  9. Oauth 第三方授权登陆 facebook google twitter instagram

    因为公司项目要用到第三方授权,所以记录学习一下 参考学习链接 OAuth 2.0 的简单解释 OAuth 2.0 的四种方式 流程图 (A)用户打开客户端以后,客户端要求用户给予授权. (B)用户同意 ...

最新文章

  1. 基于系统科学理论的认知科学研究进展
  2. 就在昨天,又一次上亿级的架构事故发生了!
  3. mysql 备份到别的机器_物理拷贝备份mysql到其他机器上恢复
  4. 凭自己本事单的身是一种怎样的体验?你根本配不上如此优秀的我!
  5. iOS-WKWebView的使用
  6. python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
  7. tensorflow: slim
  8. 可见光和红外图像的融合
  9. 安卓平板python编程软件下载_notepad++下载-notepad++中文版下载v7.6.2 中文增强版-西西软件下载...
  10. Impala SQL语句 COMPUTE STATS
  11. 中英文标点符号切换的组合键_切换中英文标点快捷键
  12. 常用的20个js简洁代码
  13. Java 的 FileInputStream 是否需要 close
  14. 编程菜鸟到大鸟--代码积累
  15. Logstash的grok正则匹配自定义
  16. 使用 Excel 和 Math.Net 进行曲线拟合和数据预测
  17. android浏览器插件介绍
  18. 谈一谈|电脑实用小技巧
  19. Java面试必备八股文
  20. Springboot 报错 template might not exist or might not be accessible by any of the configured Template

热门文章

  1. 电脑翻译软件-在线电脑实时翻译软件
  2. 北京千锋python培训班
  3. 程序员在工作中这样做,会省去一大堆烦恼
  4. LM393比较器仿真
  5. linux内核路由转发表的组成,linux路由转发表的检索过程(fib_lookup)
  6. Behance上值得借鉴的设计风格
  7. Cobalt strike的使用
  8. 海外邮件经常退信怎么办啊?
  9. Nancy之区域和分部视图的使用
  10. 安装Python遇到“0x80070643发生严重错误”