oauth2获取access_token的几种方式:

  1. 简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中。
  2. 密码模式(password):将用户名和密码传过去,直接获取access_token。
  3. 客户端模式(client credentials):用户向客户端注册,然后客户端以自己的名义向“服务端”获取资源。
  4. 授权码模式(authorization code):通过客户端的后台服务器,向服务端认证。

之前介绍了密码模式(password)获取access_token的方式,今天介绍下授权码模式。

授权码模式(authorization code)

  1. 在浏览器中访问OAuth2 服务器的认证接口:
    http://localhost:8020/oauth/authorize?response_type=code&client_id=test&redirect_uri=http://localhost:8080
  • response_type=code : 代表期望的请求响应类型为authorization code
  • client_id=test: client_id为你需要使用的客户端id
  • redirect_uri=http://localhost:8080 : redirect_uri是成功获取token之后,重定向的地址
  1. 访问认证接口成功之后,浏览器会跳转到OAuth2配置的登录页或者默认的security登录,正确输入用户名/密码之后。浏览器将会在重定向的地址上返回一个code。如下:
    http://localhost:8080?code=W3ixVa
  • code=W3ixVa : code就是OAuth2服务器返回的
  1. 然后使用获取到的code范围OAuth2认证服务器取到access_token,如下:
    http://localhost:8020/oauth/token?grant_type=authorization_code&code=W3ixVa&client_id=test&client_secret=secret&redirect_uri=http://localhost:8080
  • grant_type=authorization_code : grant_type为认证类型,当前为授权码模式
  • code=W3ixVa : code为上面获取到的code
  • client_id=test : client_id 与上面获取code的client_id需要一致
  • client_secret=secret : 为client_id对应的客户端的密钥
  • redirect_uri=http://localhost:8080 : : redirect_uri是成功获取token之后,重定向的地址

成功获取token如下:

至此:使用授权码模式(authorization code)获取access_token就完成了。

oauth2使用授权码模式(authorization code)获取access_token相关推荐

  1. Spring Security OAuth2 授权码模式 (Authorization Code)

    前言 Spring Security OAuth2 授权码模式 (Authorization Code) 应该是授权登录的一个行业标准 整体流程 首先在平台注册获取CLIENT_ID和CLIENT_S ...

  2. Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】

    要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Ap ...

  3. oauth2.0授权码模式详解

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  4. OAuth2.0授权码模式学习

    OAuth2.0授权码模式学习 四种授权方式 1,授权码模式 2,简化模式 3,密码模式 4,客户端模式 授权码模式 四种授权模式中最完成,最严密的授权. (1)用户访问客户端,后者将前者导入认证服务 ...

  5. OAuth2.0授权码模式原理与实战

    OAuth2.0是目前比较流行的一种开源授权协议,可以用来授权第三方应用,允许在不将用户名和密码提供给第三方应用的情况下获取一定的用户资源,目前很多网站或APP基于微信或QQ的第三方登录方式都是基于O ...

  6. OAuth2.0授权码模式实战

    OAuth2.0是目前比较流行的一种开源授权协议,可以用来授权第三方应用,允许在不将用户名和密码提供给第三方应用的情况下获取一定的用户资源,目前很多网站或APP基于微信或QQ的第三方登录方式都是基于O ...

  7. IdentityServer4系列 | 授权码模式

    一.前言 在上一篇关于简化模式中,通过客户端以浏览器的形式请求「IdentityServer」服务获取访问令牌,从而请求获取受保护的资源,但由于token携带在url中,安全性方面不能保证.因此,我们 ...

  8. OAuth2.0协议入门(一):OAuth2.0协议的基本概念以及使用授权码模式(authorization code)实现百度账号登录

    一 OAuth2.0协议的基本概念 (1)OAuth2.0协议 OAuth协议,是一种授权协议,不涉及具体的代码,只是表示一种约定的流程和规范.OAuth协议一般用于用户决定是否把自己在某个服务商上面 ...

  9. html页面授权码,spring boot 2.0 整合 oauth2 authorization code授权码模式

    oauth2 authorization code 大致流程 用户打开客户端后,客户端要求用户给予授权. 用户同意给予客户端授权. 客户端使用授权得到的code,向认证服务器申请token令牌. 认证 ...

最新文章

  1. 又踩到Dubbo的坑,但是这次我笑不出来
  2. mongodb mysql 事务_MongoDB数据库两阶段提交实现事务的方法详解 _ 蚂蚁视界
  3. TypeScript 2.1中的类型运算 一个递归的Readonly泛型
  4. python 中 feedparser的简单用法
  5. C#操作Excel数据增删改查(转)
  6. 微软:Vista SP2是最安全的操作系统
  7. Windows Sysinternals Desktops v1.0 发布 - 超简单的虚拟桌面程序
  8. 也谈PostgreSQL的Vacuum机制及其最佳实践
  9. 二分查找(Java实现)
  10. mysql外键依靠主键_mysql设置外键(主键依赖)
  11. 我的个人中心前端开发源代码_个人博客
  12. Windows下使用VS2008+CUDA3.0开发的详细配置 (Setup CUDA 3.0 on VS2008 in Windows)
  13. GitLab 8.9 新增文件锁 和 U2F硬件支持
  14. IOUtils工具类简介及应用
  15. 计算机应用技术专业的周志,计算机科学与技术专业实习周记
  16. 哈工大本部2022形式语言与自动机期末试题
  17. gitlab中创建项目组及项目
  18. Mac | M1芯片 JD-GUI 无法打开的问题处理
  19. redis setex和set 的区别
  20. 关于千兆交换机,你必须知道的几个点,建议收藏!

热门文章

  1. 华为系创业成功少 华为创业十大系
  2. 计算机切换用户打不开,win10系统无法切换账户且应用打不开的解决方法
  3. Intellij中vim插件常用指令
  4. php判断运营商,PHP如何实现根据手机号判断运营商(实例)
  5. 全球及中国工程担保行业项目规模分析与投资战略决策报告2022版
  6. FLUENT直管流动压力损失仿真分析问题
  7. 通过身边小事解释机器学习是什么?
  8. 有趣:Windows如何切换macOS系统 ?(MyDock+MyFinder免费工具)
  9. 一文懂USB数据及供电协议
  10. VUE 项目落地页使用 LinkedME 深度链接服务跳回App