自己总结的可能有误差。

大致分为6个步骤:

1.注册相关应用,获取client_id,client_secret。
2.第三方请求用户授权。用户点击按钮同意授权后,授权服务器将生成一个用户凭证(code)
当我们向授权服务器提交应用信息时(就是注册应用时),通常需要填写一个redirect_uri,当我们引导用户进入授权页面时,也会附带一个redirect_uri的信息(如Sign in to GitHub),当授权服务器验证两个URL一致时,会通知浏览器跳转到redirect_uri,同时,在redirect_uri后附加用户凭证(code)的相关信息

3.请求授权服务器授权。需要以下参数:
client_id 标识第三方应用的id,由授权服务器(Github)在第三方应用提交时颁发给第三方应用

client_secret 第三方应用和授权服务器之间的安全凭证,由授权服务器(Github)在第三方应用提交时颁发给第三方应用

code 第一步中返回的用户凭证
redirect_uri 第一步生成用户凭证后跳转到第二步时的地址

state 由第三方应用给出的随机码

4.拿到验证凭证(Access Token)
授权服务器验证通过后,会将Access Token返回给第三方应用。
5.请求访问用户资源:
拿到验证凭证(Access Token)后资源服务器会提供一系列关于用户资源的API,拿验证凭证(Access Token)访问相应的API即可。
6.返回资源,OAuth流程结束。

最新文章

  1. sass入门
  2. ZOJ 1074 最大子矩阵和
  3. .Net 两个对像之间的映射
  4. ssh链接云主机的一些笔记
  5. Three.js基础
  6. Visual format language
  7. Ninject之旅之十二:Ninject在Windows Form程序上的应用(附程序下载)
  8. Python 的笔试题
  9. linux的特殊符号与正则表达式
  10. 解决vuecli3.0构建的vue2.0项目在IE9可能出现的兼容性问题
  11. python下基于sokcet的tcp通信——入门篇
  12. Arduino通过MAX9814实现录音
  13. [原创]K8_Delphi源码免杀系列教程
  14. forward请求转发,param参数传递以及request.getParameter图文讲解
  15. linux下有线网卡出现ADDRCONF(NETDEV_UP): eth0: link is not ready的解决方法
  16. 2018.09.22 ZJOI2005午餐(贪心+01背包)
  17. elasticsearch(二) 之 elasticsearch安装
  18. iOS8 CIGlassDistortion滤镜的使用
  19. ip_rcv && ip_rcv_finish
  20. GET 对比 POST

热门文章

  1. c#网络编程
  2. 转-浅谈HTTP中Get与Post的区别
  3. 轻量级linux CRUX安装笔记
  4. JDK的安装!力求简单明了!
  5. minio-dotnet --云存储服务
  6. html元素的显示和隐藏
  7. POJ 3390 Print Words in Lines(DP)
  8. Android初级教程理论知识(第九章多媒体编程)
  9. 浅谈javascript-this关键字
  10. js清除单选框所选的值
  11. git fork之如何同步更新
  12. yocto doc
  13. LeetCode--496--下一个更大元素I(java)
  14. day 03
  15. order by name 注入
  16. Jquery判断IE6等浏览器的代码
  17. Django:提交表单时遇到403错误:CSRF verification failed
  18. MySQL->AUTO_INCREMENT[20180516]
  19. python学习,day3:示例,进度条
  20. HDU 6115 Factory LCA,暴力