OAuth认证 学习与实践

OAuth 认证允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的账户密码或他们的所有数据。在产品上的经典例子是,我做了A网站,但是用户可以通过微博、微信、github登录。

阅读资料

  1. 理论学习:阮一峰老师的一篇文章:理解OAuth 2.0
  2. 服务商视角:ImportSource博主的文章:创建一个Spring Security OAuth认证服务,其中的实战部分讲解了作为服务商如何构建OAuth服务;
  3. 第三方网站视角:OAuth 2.0 认证的原理与实践,这篇文章的例子是作为第三方网站如何与服务商(github)交互的流程。

概念阐述

OAuth是用户、服务提供商(用户信息的提供者)、第三方网站(用户资源的使用者)三者之间通过协作来完成信息的请求、授权、使用的协议。

  1. 用户:第三方网站的使用者
  2. 服务商:用户信息的管理者
  3. 第三方网站:用户信息的访问者

场景重现:授权码(访问令牌)模式

  1. 用户访问第三方网站,第三方网站想对用户存放在服务商的某些资源进行操作。
  2. 第三方网站向服务商请求一个临时令牌。
  3. 服务商验证第三方网站的身份后,授予一个临时令牌。
  4. 第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。
  5. 用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所想要和能够访问的资源。
  6. 授权成功后,服务商将用户导向第三方网站的返回地址。
  7. 第三方网站根据临时令牌从服务商那里请求访问令牌。
  8. 服务商根据令牌和用户的授权情况授予第三方网站访问令牌。
  9. 第三方网站使用获取到的访问令牌访问存放在服务商对应的用户资源

编码联系

  1. oauth-github-demo

微信开发文档阅读

  1. 网页授权获取用户基本信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动安全

如何在应用宝上架时进行免费APP加固?

友情提醒,加固完成后需下载加固包进行重签名(步骤8开始),重新在应用市场上传apk哦~

6.4K140
来自专栏Java进阶

zookeeper的zab协议工作原理之原子广播

52060
来自专栏小白安全

小白博客 迷你音乐播放器及实现全站pjax无刷新加载

演示截图: ? 请点击此处输入图片描述 ? 请点击此处输入图片描述 使用教程,下载播放器文件,直接上传压缩包至你的网站根目录,然后解压到根目...

55950
来自专栏Python中文社区

如何构建爬虫代理服务?

如何构建爬虫代理服务 专栏作者:Kaito 起因 做过爬虫的人应该都知道,抓的网站和数据多了,如果爬虫抓取速度过快,免不了触发网站的防爬机制,几乎用的同一招就是...

457100
来自专栏月色的自留地

mac电脑进行可见光通信实验要点

12560
来自专栏Spark学习技巧

调试flink源码

本文主要是讲讲flink的源码编译,案例运行,flink源码调试过程。调试flink的源码及案例,需要先clone工程,编一下源码,去掉规范检查,修改工程,最后...

66750
来自专栏大数据和云计算技术

MongoDB系列10:Change Streams构建实时同步数据流

本文是第10篇,主要讲述Change Streams构建实时同步数据流的实战经验,非常值得一看。

42920
来自专栏熊训德的专栏

Hbase Replicaition 在腾讯云中应用概述

Hbase 的 Repliation 是通过 Zookeeper 的协助,从 Master 集群异步往 Slave 集群写 WAL 实现的。可以实现典型的 Ma...

88750
来自专栏全华班

springcloud学习手册-API Gateway (API网关)

导读 | API Gateway (API网关) ? 一、为什么服务之间需要使用API Gateway (API网关)呢? 引用「Chris Richardso...

41060
来自专栏游戏杂谈

nginx的反向代理缓存

假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求...

53020

扫码关注云+社区

领取腾讯云代金券