基于浏览器

访问后跳到登录页面,登录成功后跳转到授权页面,授权成功后跳转到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参考资料

学习 OAuth2.0的更多相关文章

  1. OAuth2.0学习(1-12)开源的OAuth2.0项目和比较

    OAuth2.0学习(2-1)OAuth的开源项目   1.开源项目列表 http://www.oschina.net/project/tag/307/oauth?lang=19&sort=t ...

  2. SpringBootSecurity学习(14)前后端分离版之 OAuth2.0介绍

    登录总结 前面基本介绍了security的常规用法,同时介绍了JWT和它的一个简单实现,基本上开发中遇到的登录问题都能解决了,即使在分布式开发,或者微服务开发中实现登录也基本没有问题了.securit ...

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

    OAuth2.0 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.客户端来申请资源,资源所有者同意以后,资源服务器可以向客户端颁发令牌.客户端通过令牌,去请求数据.也就是说, ...

  4. OAuth2.0学习(2-1)Spring Security OAuth2.0 开发指南

    开发指南:http://www.cnblogs.com/xingxueliao/p/5911292.html Spring OAuth2.0 提供者实现原理: Spring OAuth2.0提供者实际 ...

  5. OAuth2.0学习(1-11)新浪开放平台微博认证-使用OAuth2.0调用微博的开放API

    使用OAuth2.0调用API 使用OAuth2.0调用API接口有两种方式: 1. 直接使用参数,传递参数名为 access_token URL 1 https://api.weibo.com/2/ ...

  6. OAuth2.0学习(1-2)OAuth2.0的一个企业级应用场景 - 新浪开放平台微博OAuth2.0认证

    http://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5 开发者可以先浏览OAuth2.0的接口文档,熟悉OAuth2.0的接口及参数的含义,然后我们根据应用场景各自 ...

  7. OAuth2.0学习(1-8) 授权方式五之Access_Token令牌过期更新

    OAuth2.0的Access_Token令牌过期更新 如果用户访问的时候,客户端的"访问令牌"已经过期,则需要使用"更新令牌"申请一个新的访问令牌. 客户端发 ...

  8. OAuth2.0学习(1-3)OAuth2.0的参与者和流程

    OAuth(开放授权)是一个开放标准.允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息.而这种授权无需将用户提供用户名和密码提供给该第三方网站. OAuth允许用户提供一个令牌给第 ...

  9. OAuth2.0学习(1-1)OAuth2.0是什么?

    目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题 OAuth就是用于为第三方应用授权访问用户的资源应用的. 目前有OAuth1. ...

随机推荐

  1. 【转载】Lucene.Net无障碍学习和使用:搜索篇

    在上一篇中,我们初步理解了索引的增删改查基本操作.本文着重介绍一下常用的搜索,以及搜索结果的排序和分页.本文的搜索主要是基于前一篇介绍的文本文件的索引,建议下载最后改进的demo对照着看阅读本文,同时 ...

  2. C# 6.0的属性(Property)的语法与初始值

    昨晚有学点新知识,是有关C# 6.0的. 在数据库创建有一张表: CREATE TABLE [dbo].[ToolLocation] ( ,) NOT NULL PRIMARY KEY, ) NOT ...

  3. SignalR入门之持久性连接

    为了保持客户端和服务端之间的持久性连接的开发性,并且使用传输在这这样的连接上发送数据,这个用来访问SignalR持久性连接的底层API提供了一个隐藏底层固有复杂性的抽象层. 事实上,通过该API访问通 ...

  4. [函数] Unicode 检查字符串是否含中文字

    // 字串含中文 by Aone function IsIncludeChinese(Str: String): Boolean; var i: Integer; UCS4Str: UCS4Strin ...

  5. [转]CSS编码规范

    单行形式书写风格的排版约束 1.      每一条规则的大括号 { 前后加空格 2.      多个selector共用一个样式集,则多个selector必须写成多行形式 3.      每一条规则结 ...

  6. C#中委托实现的异步编程

    所谓同步:如果在代码中调用了一个方法,则必须等待该方法所有的代码执行完毕之后,才能回到原来的地方执行下一行代码. 异步:如果不等待调用的方法执行完,就执行下一行代码. 1.0 同步例子: class ...

  7. Virtual Box和Linux的网络配置盲记

    近来可能在虚拟机重装了Linux的缘故,在用yum安装软件时出现错误,在提示上连接镜像网站时,都是"linux counldn't resolve host"这样的提示.我估计是l ...

  8. ImFire即时通讯系统构建(架构)

    msgServer集群(ms) 设计作用: 该服务主要提供客户端的接入服务.每个ms维护当前接入用户的用户状态和心跳,每个ms地位是对等的. 设计考虑: ms之间不会直接交互,减少交互的复杂度.在用户 ...

  9. jQuery超酷下拉插件6种效果演示

    原始的下拉框很丑啦, 给大家一款jQuery超酷下拉插件6种效果 效果预览 下载地址 实例代码 <div class="container"> <section ...

  10. SQL Server 跨库同步数据

    最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是op ...