当前位置: 首页 > 知识库问答 >
问题:

在OAuth2中混合授权代码和隐式授权类型

公羊浩阔
2023-03-14

我对以下涉及oauth2的流程有一些问题:

webapp1.xyz.com是具有授权代码授予类型的注册客户端,以下是当前流程:

  1. 用户登录并使用授权码重定向到webapp1.xyz.com
  2. webapp1.xyz.com交换访问令牌的授权代码并将其存储到会话
  3. webapp1.xyz.com服务器端需要通过传递访问令牌调用webapp2.xyz.com api
  4. webapp1.xyz.com具有SPA,其中ajax调用webapp1.xyz.com apiendpoint(在请求中传递会话cookies)
  5. 用户注销,会话被销毁

有人建议使用(隐式授予)访问令牌而不是会话cookie进行ajax调用。有可能混合授权代码和隐式授权类型吗?也许我是在混淆什么,我看不出有什么理由为ajax部分使用隐式grant类型。

共有1个答案

宰父阳焱
2023-03-14

有可能混合授权代码和隐式授权类型吗?

问题更多的是您在谈论一个令牌用于两个应用程序。或者更确切地说,webapp1既是一个OAuth客户机(调用web API-WebAPI2)的web站点,也是一个OAuth资源(SPA可以使用隐式授权调用的web API)。

所以:SPA javascript>webapp1.xyz.com应用程序>webapp2.xyz.com应用程序

使用混合流,webapp1将获得当前的令牌,但它也将获得一个ID令牌,它可以将该令牌传递回SPA。

ID令牌用于客户端的身份验证目的--此ID令牌可以执行与会话cookie相同的工作(即SPA和SPA后端之间的身份验证)。访问令牌将安全地存储在远离SPA的webapp1服务器上。

 类似资料:
  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 我正在尝试通过Linkedin Auth2从java web应用程序进行连接: null “client_id”和“client_secret”是我应用程序上的“客户端API”和“秘密API”。 第一个和第二个请求之间的时间少于20秒。

  • 隐式许可是为用如JavaScript等脚本语言在浏览器中实现的客户端而优化的一种简化的授权码流程。在隐式许可流程中,不再给客户端颁发授权码,取而代之的是客户端直接被颁发一个访问令牌(作为资源所有者的授权)。这种许可类型是隐式的,因为没有中间凭据(如授权码)被颁发(之后用于获取访问令牌)。 当在隐式许可流程中颁发访问令牌时,发授权服务器不对客户端进行身份验证。在某些情况下,客户端身份可以通过用于向客

  • 我们正在开发一个Salesforce组件,可用于显示与客户帐户记录相关的所有信封和状态。信封通过自定义字段生成并通过自定义第三方应用程序链接到帐户记录。我们希望组件不要求登录用户登录DocuSign,只显示信封。因此,我们计划使用一个服务用户来标注文档签名来检索信封。 我的问题是,隐式格兰特是解决这个问题的方法吗?还是JWT格兰特?什么URI参数值(比如范围)是获取令牌的关键?

  • 本书是《Ruby on Rails Tutorial: Learn Web Development with Rails (Third Edition)》一书的简体中文版,由作者 Michael Hartl 授权安道翻译和销售。版权归 Michael Hartl 和安道所有。 本书受版权法保护,任何组织或个人不得以任何形式分发或做商业使用。 书中代码基于 MIT 协议和 Beerware 协议发布

  • 授权方已经把公众号、小程序授权给你的开放平台第三方平台了,接下来的代授权方实现业务只需一行代码即可获得授权方实例。 实例化 use EasyWeChat\Factory; $config = [ // ... ]; $openPlatform = Factory::openPlatform($config); 获取授权方实例 // 代公众号实现业务 $officialAccount