相关文章

更多

最近更新

更多

OAuth 2.0 契约授权请求和响应

2019-04-23 00:09|来源: 网路

契约请求和响应

契约授权包含一个请求和一个响应。 契约授权请求 契约授权请求包含下面的参数:

response_type 必须。必须被设置在令牌中。
client_id 必须。当客户端被注册时,有授权服务器分配的客户端标识。
redirect_uri 可选。由客户端注册的重定向URI。
scope 可选。请求可能的作用域。
state 可选(推荐)。任何需要被传递到客户端请求的URI客户端的状态。

契约授权响应 契约授权包含下面的参数。注意,契约授权响应不是JSON:

access_token 必须。授权服务器分配的访问令牌。
token_type 必须。令牌类型。
expires_in 推荐。访问令牌过期的秒数。
scope 可选。访问令牌的作用域。
state 必须。i如果出现在授权请求期间,和请求中的state参数一样。

契约授权错误

如果授权期间发生错误,两种情况会发生。 第一种情形是,客户端没有被授权或识别。比如,请求中错误的重定向URI。这种情况下,授权服务器没有必要重定向资源拥有者到重定向URI,而是通知资源拥有者发生了错误。 第二种情形是,客户端是好的,但是发生了其他事情。这种情况下下面地错误响应会被发送到客户端,包括在重定向URI中:

error 必须。必须是预先定义的错误码之一。参见规范查查这些错误码及它们的含义。
error_description 可选。一段UTF-8编码的描述错误的文本。适用于开发者,而不是最终用户。
error_uri 可选。 一个指向包含人类可读的错误信息网页的URI。
state 必须。如果出现在授权请求期间,和请求中的state参数一样。

相关问答

更多
  • 你在这里描述的是OAuth 2 隐式授权流程 。 OAuth 2还包含三个其他流程,但由于您的资源所有者(用户)似乎正在使用浏览器端JavaScript(您正在谈论Cookie)发起请求,因此这是您应该使用的流程。 在客户端,OAuth只要求您存储access_token以访问受保护的资源(如果您要访问过期的access_token ,则需要refresh_token )。 What you are describing here, is the OAuth 2 Implicit Grant flow. O ...
  • 经过大量的研究,我发现client_credentials授权类型是为这种情况。 一旦你把这个术语打入谷歌,你可以找到非常有用的资源。 这是三脚OAuth 2.0的正常流程(我们希望用户登录): 假设我们的应用程序中有以下端点进行身份验证: /oauth/auth /oauth/token 通常(用于授权代码授权),我们将用户指向/oauth/auth?state=blah&client_id=myid&redirecturl=mysite.com/blah 然后验证后,用户被重定向到mysite.co ...
  • 背景:我为OAuth 1.0a和2.0编写了客户端和服务器堆栈。 OAuth 1.0a和2.0都支持双向身份验证 ,其中服务器可以确保用户的身份, 三方身份验证 ,其中服务器由用户身份的内容提供商确保。 三足的身份验证是授权请求和访问令牌发挥作用的地方,重要的是要注意OAuth 1也是这样。 复杂的一个:三腿认证 OAuth规范的一个要点是为内容提供商 (例如Facebook,Twitter等)确保客户端具有一些身份的服务器 (例如,希望代表客户与内容提供商交谈的Web应用程序) 。 三腿认证提供的功能是在 ...
  • 我也同意你的想法。 OAuth2规范没有对此采取对策。 但是那里的供应商为此提供了各种对策。 例如,用户仪表板可供用户查看当前持有授权的应用程序和设备。 然后用户可以撤销任何可疑应用程序。 I too agree with your thinking. The OAuth2 specification doesn't have a countermeasure for this. But the vendors out there provides various countermeasures for t ...
  • 你实际上试图完成的是服务器和Google之间的服务器到服务器认证。 这样,当访问者进入你的页面时,你将从你自己的电子表格中获取数据,而不需要任何第三方参与。 我不可能在Google服务帐户中找到您要查找的内容 此外,另一种解决方案(这很容易完成,但可能有一些挫折)是使用oauth 2.0协议与您的Google开发人员帐户(从Google Console API检索)。 如果您尚未创建Google Dev帐户(Google Console API) 使用“离线”授权为您的应用程序生成访问/刷新令牌 - 这意味 ...
  • 您需要按照Google的说明获取应用程序的OAuth 2.0凭据。 You need to follow Google's instructions for obtaining OAuth 2.0 credentials for your application.
  • 使用AFOAuthing在此处使用AFNetworking完成的是代码 在ViewController.m中 #define CLIENT_ID @"your client id" #define CONSUMER_SECRET @"your consumer secret" 使用safari开始授权。 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.fitbit.com/ ...
  • 在Google Developers Console中创建客户端ID时,会为您创建两个redirect_uris: urn:ietf:wg:oauth:2.0:oob和http://localhost 。 你也可以考虑urn:ietf:wg:oauth:2.0:oob:auto 。你的应用程序使用的值决定了如何将授权代码返回给你的应用程序。 选择重定向uri When you create a client ID in the Google Developers Console, two redirect_ ...
  • 将'hd = example.com'添加到OAuth2请求中可能会产生预期的结果(非常类似于Google OAuth1流程 )。 但请注意,用户可以修改请求并删除或更改“hd”值。 因此,向hd参数添加特定值并不能保证使用特定的Google Apps域。 收到回复后,您仍应进行其他检查。 希望有所帮助。 Probably adding 'hd=example.com' to the OAuth2 requests will have the desired result (pretty much like ...
  • 似乎这是一个重复的问题。 “刷新令牌的想法是,如果访问令牌被泄露,因为它是短暂的,攻击者有一个有限的窗口可以滥用它。 刷新令牌(如果受到攻击)是无用的,因为除了刷新令牌之外,攻击者还需要客户端ID和机密才能获得访问令牌。“ 为什么OAuth v2同时具有访问权限和刷新令牌? Seems like this is a duplicate question. "The idea of refresh tokens is that if an access token is compromised, becaus ...