最近在研究OAuth 2.0的技术,发现网上说的其实挺全面的,但是会给刚接触的服务器端开发者一些迷惘,就是这么多的参数如何用?我仔细理解了一下。

1、申请授权接口(HTTPS请求方式)
请求参数
|
必选
|
类型及范围
|
说明
|
client_id
|
true
|
string
|
申请应用时分配的AppKey。
|
redirect_uri
|
true
|
string
|
授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas
page的地址。
|
response_type
|
false
|
string
|
返回类型,支持code、token,默认值为token。
|
state
|
false
|
string
|
用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。
|
display
|
false
|
string
|
授权页面的终端类型,取值见下面的说明。
|
scope
|
false
|
string
|
以英文逗号’,’分隔的权限列表,若不传递此参数,代表请求默认的basic权限。
|
oauth_version
|
False
|
string
|
(可选)版本号(目前只支持2.0)
|
redirect_uri说明:
应用开发者预先在申请应用时填写的地址,主要用于:当验证通过时,需要返回的页面,比如我开发的应用有一个登录成功的首页,那么用户在授权验证通过后,要回到我的应用的这个首页,那么这个首页的地址就是回调地址,参数state也就是需要传到我的应用首页的参数,这个参数在经过授权服务器(新浪微博)时会原封不动的传给回调地址(也就是我的应用的首页)。如果是移动终端授权,个人认为此参数和state均可以不用,只需要以json方式返回access_token即可
display说明:
参数取值
|
类型说明
|
default
|
默认的授权页面,适用于web浏览器。
|
mobile
|
移动终端的授权页面,适用于支持webView的智能手机。
|
返回数据
response_type为code
返回值字段
|
字段类型
|
字段说明
|
code
|
string
|
用于调用access_token,接口获取授权后的access token。
|
state
|
string
|
如果传递参数,会回传该参数。
|
response_type为token
返回值字段
|
字段类型
|
字段说明
|
access_token
|
string
|
用来调用其它接口的授权过的accesstoken。
|
expires_in
|
string
|
accesstoken有效期时间,unix的timestamp格式。
|
refresh_token
|
string
|
刷新token,如果有获取权限则返回。
|
state
|
string
|
如果传递参数,会回传该参数。
|
示例
response_type为token
//请求
https://api.t.sina.com.cn/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=token
//同意授权后会重定向
http://www.example.com/response#access_token=ACCESS_TOKEN&expires_in=250327040&refresh_token=REFRESH_TOKEN
response_type为code
//请求
https://api.t.sina.com.cn/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code
//同意授权后会重定向
http://www.example.com/response&code=CODE

- 大小: 59.6 KB
分享到:
相关推荐
OAuth 2.0 中文翻译 ...OAuth 2.0 是一种解决分布式 web 服务和云计算中第三方应用访问受保护资源问题的授权协议,具有高安全性、灵活性和扩展性等特点,对于促进国内开放平台领域的发展具有重要意义。
- **意义**:OAuth2.0通过引入新的概念和技术手段,有效解决了传统认证机制中存在的安全性和灵活性问题。它允许资源拥有者向第三方应用授予有限的访问权限,同时确保敏感信息的安全性。 #### 二、术语中英对照及...
微信提供的OAuth2.0授权服务允许开发者在用户同意的情况下获取其微信账号的基本信息,以便进行用户身份验证。首先,你需要在微信开发者中心注册并创建一个应用,获取AppID和AppSecret,这两个参数在后续的授权过程...
《SpringBoot整合OAuth2.0实现Google登录授权详解》 在现代Web开发中,安全性和用户认证是不可或缺的重要环节。Spring Boot作为Java生态系统中的主流框架,提供了强大的安全支持。本篇文章将详细介绍如何利用Spring...
本书内容包括REST资源的识别与设计、REST服务的版本控制、使用Swagger文档化REST服务、错误处理、使用基本认证和OAuth2.0安全REST服务、使用分页处理大数据集、使用RestTemplate构建REST客户端,以及使用Spring MVC...
6. **详细说明**:这部分通常会解释每个代码段的作用、参数的意义以及可能出现的问题和解决策略。通过阅读这些说明,开发者能更好地理解代码工作原理,并避免在实际开发中遇到的常见错误。 7. **一站通**:这可能是...
新浪微博OAuth认证和储存过程涉及了开放授权协议OAuth在微博平台上...在实施OAuth认证机制时,开发者应当确保其程序的安全性,防止token和secret的泄露,同时遵循OAuth 2.0协议的最新标准,确保服务的兼容性和稳定性。
6. **安全机制**:详细阐述如何保护API调用的安全,比如使用API密钥、OAuth2.0授权等方式。 7. **示例**:提供API调用的示例代码,通常包括curl命令或实际的编程语言代码,帮助开发者快速上手。 8. **最佳实践**:...
2. 用户授权:在进行支付前,需要获取用户的支付宝账号权限,通常通过OAuth2.0协议实现。用户授权后,可以获取到访问令牌(Access Token),用于后续的接口调用。 3. 支付流程:客户端发起支付请求,将商品信息、...
同时,考虑到安全性,可能采用了HTTPS协议进行数据传输,并应用了身份验证和授权机制,如OAuth2.0,确保只有授权用户才能访问系统。 在设计过程中,需遵循模块化、低耦合的原则,使得系统易于扩展和维护。同时,...
这涉及到身份验证与授权技术,例如OAuth2.0或JWT。 3. **前端界面**:系统可能采用HTML、CSS和JavaScript构建用户界面,可能使用了前端框架如React、Vue或Angular,以实现响应式布局和交互功能。 4. **后端开发**...
3. 认证与授权:应使用安全的认证和授权机制,如OAuth2.0,确保只有经过验证的用户才能访问资源。 五、MySQL规约 这部分可能包括数据库设计规范,如合理设计表结构、索引优化、事务处理等,以提升数据库性能和数据...
1. 用户管理:实现用户注册、登录、权限控制等功能,可能涉及身份验证和授权机制,如OAuth2.0。 2. 数据录入:录入师生的基本信息,如姓名、学号/工号、班级/部门,以及联系方式等,以便进行疫情追踪。 3. 健康...
客户端模式是OAuth 2.0协议中的一种授权类型,适用于服务器之间的交互,不涉及用户直接参与。通过这种方式获取Token的过程如下: - **请求URL**:`http://117.159.9.107:4098/oauth/token` - **参数**: - `grant_...
同时,通过OAuth2.0等授权协议保护用户信息。 四、系统优化与扩展 1. 预选机制:在正式选课前进行预选,以减轻服务器压力,提前发现课程供需问题。 2. 推荐系统:基于学生历史选课数据,推荐适合的课程,提高选课...
开发过程中,可能会使用JWT(JSON Web Tokens)进行用户认证,以及OAuth2.0协议实现第三方登录功能。而在线学习系统可能会有课程管理、视频播放、用户评论、评分、学习进度追踪等核心功能。 通过深入研究这个项目,...
你需要先获取用户的授权,然后使用OAuth 2.0进行身份验证。 3. **数据格式化**:确保导入的数据符合Outlook约会API所需的格式。 4. **错误处理**:处理可能出现的网络错误、数据格式错误或其他异常情况。 **导出...
接着,通过OAuth2.0协议进行用户授权,获取Access Token,这一步骤使得开发者能够代表用户执行特定操作。 在开发过程中,常见的接口调用包括: 1. 用户信息获取:通过用户ID或昵称获取用户的基本信息,如昵称、...
1. **用户授权**:小程序商城通过微信的OAuth2.0授权机制,允许用户使用微信账号快捷登录,简化注册流程,同时确保用户数据的安全性。开发者在app.js或相关服务文件中实现登录接口,与微信服务器进行交互,获取用户...
6. **安全与认证**:京东应用会涉及用户登录、支付等功能,因此会涉及到加密技术(如HTTPS、JWT)、OAuth2.0等安全机制。研究这部分可以帮助我们提升应用的安全性。 7. **版本控制**:虽然源码包中没有明确的版本...