学习 OAuth2.0

基于浏览器

访问后跳到登录页面,登录成功后跳转到授权页面,授权成功后跳转到redirect_uri指定的地址。

1.请求授权。

http://localhost:8080/oauth/authorize?client_id=unity-client

&redirect_uri=http%3a%2f%2fwww.baidu.com

&response_type=code&scope=read

  • 地址是/oauth/authorize.
  • client_id表示厂商的唯一标识,在厂商申请资质时自动生成的。
  • redirect_uri回调地址,认证成功后带着code重定向该地址。
  • response_type响应类型。
  • scope权限范围。

2.授权成功后回调地址

http://localhost:8080/unity/dashboard.htm?code=zLl170

  • 地址是redirect_uri里配置的。
  • code临时授权码。

3.通过code换取access_token

http://localhost:8080/oauth/token?client_id=unity-client

&client_secret=unity&grant_type=authorization_code

&code=zLl170&redirect_uri=http%3a%2f%2fwww.baidu.com

  • 地址是/oauth/token
  • client_id表示厂商的唯一标识,在厂商申请资质时自动生成的,不可修改,全局唯一。
  • client_secret表示厂商的密码,在厂商申请资质时自动生成的,可以修改。
  • grant_type发放类型。
  • code授权成功后在回调地址里带的那个code。
  • redirect_uri回调地址,要与获取code的回调地址保持一致。

4.获取access_token响应的数据

{"access_token":"3420d0e0-ed77-45e1-8370-2b55af0a62e8",

"token_type":"bearer","refresh_token":"b36f4978-a172-4aa8-af89-60f58abe3ba1",

"expires_in":43199,"scope":"read"}

  • access_token我们要的就是这个token,以后带着这个token访问我们的系统就畅通无阻了。
  • token_type类型,还没搞懂具体含义。
  • refresh_token刷新token有效时间时用。
  • expires_in过期时间,单位还没搞懂。
  • scope权限范围,和申请时配置一致。

5.获取access_token后访问资源 [GET]

http://localhost:8080/unity/dashboard.htm?

access_token=3420d0e0-ed77-45e1-8370-2b55af0a62e8

  • 以后就可以带着token访问我们的站点资源了,就好像用户登录后操作一样。

6.刷新access_token [GET]

http://localhost:8080/oauth/token?client_id=mobile-client&client_secret=mobile

&grant_type=refresh_token&refresh_token=b36f4978-a172-4aa8-af89-60f58abe3ba1

  • 地址/oauth/token
  • client_id表示厂商的唯一标识,在厂商申请资质时自动生成的,不可修改,全局唯一。
  • client_secret表示厂商的密码,在厂商申请资质时自动生成的,可以修改。
  • grant_type发放类型。
  • refresh_token获取token时得到的。

spring权限配置的要求

用户有个角色可以访问/openapi 客户端有个角色可以访问/openapi 用户把自己的openapi的访问权限给客户端,客户端拿着token才能访问用户的/openapi

已经实现OAuth2的一些开放平台


Oauth2参考资料

时间: 2024-10-05 23:46:33

学习 OAuth2.0的相关文章

学习 OAuth2.0 笔记( 一 )

1.1. Roles 角色 OAuth defines four roles: OAuth 设定了四个角色 resource owner 资源拥有者 An entity capable of granting access to a protected resource. When the resource owner is a person, it is referred to as an end-user. 资源拥有者指一个能够授权訪问受保护资源的实体.当资源拥有者是人的时候,他被称为终端用

oauth2.0学习笔记

简介 oauth2.0是一种目前被广泛使用的开放式授权协议.各个服务平台可以使用oauth2.0协议来允许平台用户授权第三方来获取用户的信息数据等. 术语 Client : 第三方应用 Resource Owner : 资源拥有者,即平台用户 Authorization Server : 认证服务器,即平台提供的专门处理认证的服务 Resource Server : 资源服务器,平台给第三方提供资源访问的服务器,它与认证服务器可以是同一台也可以不是同一台 User Agent : 用户代理,即浏

SpringBootSecurity学习(15)前后端分离版之 OAuth2.0简单示例

OAuth2.0 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.客户端来申请资源,资源所有者同意以后,资源服务器可以向客户端颁发令牌.客户端通过令牌,去请求数据.也就是说,OAuth 的核心就是向第三方应用颁发令牌.而且,OAuth 2.0 规定了四种获得令牌的流程.你可以选择最适合自己的那一种,向第三方应用颁发令牌. 具体的OAuth学习建议仔细研读阮一峰的教程, http://www.ruanyifeng.com/blog/2019/04/oauth_design

OAuth2.0学习(5-4)新浪开放平台-微博API-使用OAuth2.0调用API

使用OAuth2.0调用API 使用OAuth2.0调用API接口有两种方式: 1. 直接使用参数,传递参数名为 access_token URL 1 https://api.weibo.com/2/statuses/public_timeline.json?access_token=abcd 2.在header里传递,形式为在header里添加 Authorization:OAuth2空格abcd,这里的abcd假定为Access Token的值,其它接口参数正常传递即可. 注:所有的微博开放

关于微博开放平台Oauth2.0接入网站应用

关于什么是微博开放平台及微博开放平台能做什么,咱就不做搜索引擎的搬运工了 这里直接给个链接介绍:微博开放平台 本文只是抛砖引玉,讲讲微博开放平台的基本用法,适合没接触过开放平台的朋友入门学习,老鸟就略过啦~ 举例(新浪)微博开放平台:http://open.weibo.com/ (这里是官网) 先来看看关于微博开放平的台网站接入: 什么是网站接入? 举几个例子,比如我们经常会看到各大网站可以直接使用QQ,微博,微信等账号直接登录.各种文章.游戏.页面的一键分享.同步到QQ空间.微博等社交工具的实

【OAuth2.0】Spring Security OAuth2.0篇之初识

不吐不快 因为项目需求开始接触OAuth2.0授权协议.断断续续接触了有两周左右的时间.不得不吐槽的,依然是自己的学习习惯问题,总是着急想了解一切,习惯性地钻牛角尖去理解小的细节,而不是从宏观上去掌握,或者说先用起来(少年,一辈子辣么长,你这么着急合适吗?).好在前人们已经做好了很好的demo,我自己照着抄一抄也就理解了大概如何用,依旧手残党,依旧敲不出好代码.忏悔- WHAT? 项目之中实际使用OAuth2.0实现是用的Spring Security OAuth2.0,一套基于Spring S

新浪微博OAuth2.0的用法

最近学习Android开发,照着视频开发新浪微博,但是视频里的介绍的是OAuth1.0的授权方式,试了半天发现用不了. 原来现在一般没审核的用户只能使用OAuth2.0了,视频教学里的方法已经过时了.于是只好自己研究如何进行微博认证. OAuth2.0的授权过程 说白了,就是请求获取Grant Code→使用Grant Code申请Access Token→以后就使用这个Access Token获取微博的服务,这比OAuth1.0的授权方式简化了不少. 如果不使用别的第三方OAuth认证的库或者

微信网页授权(OAuth2.0) PHP 源码简单实现

提要: 1. 建议对OAuth2.0协议做一个学习. 2. 微信官方文档和微信官网工具要得到充分利用. 比较简单,直接帖源代码了.其中“xxxxxxxxxx”部分,是需要依据自己环境做替换的 /** * OAuth2.0微信授权登录实现 * * @author zzy * @文件名:GetWxUserInfo.php */ // 回调地址 $url = urlencode("http://www.xxxxxxxxx.com/GetWxUserInfo.php"); // 公众号的id和

基于OAuth2.0协议的QQ第三方授权登录iOS代码分析

简要说明: 授权登录已经成为注册方式里的主流,目前授权登录方式主要SSO跳转授权登录和OAuth2.0两种,前者好处无需用户再次输入密码就可以直接授权成功,但前提是必须用户手机端安装了该软件,比如QQ,后者的优势就是是否安装无关紧要,是一个HTML的页面呈现,麻烦就在于要输入用户名和密码,这就非常不爽了,但是有时候偏偏必须这么做,理由嘛,自行想想就好,接下来我们就看看如果利用OAuth2.0的方式来做QQ授权登录,如果想了解QQ的SSO授权登录,可以看我(博客主页)之前的博客:基于第三方QQ授权