首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么angular4会调用两次oauth/token?

Angular 4调用两次oauth/token的原因可能是由于以下情况之一:

  1. 代码逻辑问题:在Angular 4应用程序中,可能存在某个地方重复调用了oauth/token接口。这可能是由于代码中的错误、重复的订阅或其他逻辑错误导致的。
  2. 跨域请求问题:如果Angular 4应用程序与后端API不在同一个域下,可能会触发浏览器的跨域请求机制。在这种情况下,浏览器会首先发送一个预检请求(OPTIONS请求),然后再发送实际的POST请求。这可能导致oauth/token接口被调用两次。
  3. 拦截器或中间件问题:Angular 4中常常使用拦截器或中间件来处理HTTP请求。如果在拦截器或中间件中对oauth/token接口进行了处理,可能会导致多次调用。

为了解决这个问题,可以采取以下步骤:

  1. 检查代码逻辑:仔细检查Angular 4应用程序中与oauth/token相关的代码,确保没有重复调用该接口的逻辑。
  2. 检查跨域请求设置:如果应用程序与后端API不在同一个域下,确保服务器端已正确配置CORS(跨域资源共享)。同时,可以在Angular 4应用程序中使用代理配置来解决跨域请求问题。
  3. 检查拦截器或中间件:如果使用了拦截器或中间件来处理HTTP请求,确保没有对oauth/token接口进行重复处理的逻辑。

总结起来,调用两次oauth/token接口可能是由于代码逻辑问题、跨域请求问题或拦截器/中间件问题导致的。通过仔细检查代码和相关配置,可以解决这个问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 Linux 系统调用消耗较多资源

为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。...与函数调用相比,系统调用消耗更多的资源,如下图所示,使用 SYSCALL 指定执行系统调用消耗的时间是 C 函数调用的几十倍[^4]: ?...(999) 系统调用关闭不存在的文件描述符消耗更少的资源[^5],与 getpid(2) 相比大概少 20 个 CPU 周期[^6],当然想要实现用于测试额外开销的系统调用,使用自定义的空函数应该是最完美的选择...图 3 - 系统调用的三种方法 从上面的系统调用与函数调用的基准测试中,我们可以发现不使用 vSDO 加速的系统调用需要的时间是普通函数调用的几十倍,为什么系统调用带来这么大的额外开销,它在内部到底执行了哪些工作呢...vDSO 提供的四种系统调用中三种都与获取时间有关,为什么它可以在用户态提供 rt_sigreturn,不存在安全风险么?

1.9K40
  • 大话Oauth2.0(二)、标准流程下的Oauth2组件及通信

    这篇文章我们要描述的是标准的Oauth2流程,之所以称为标准的流程,也是Oauth2的规范性流程,这个流程中包含了授权码和访问TOKEN。这个规范性的流程规定了要通过两次URI重定向。...为什么要通过URI重定向?而且为什么需要两次?接下来我们会去详细分析解答。...我们还会思考另外一个问题,为什么标准流程下需要先获取CODE,然后再通过CODE获取ACCESS TOKEN呢?...这样的话体验很差,access_token设置失效时间本身是为了安全性,有没有既能保证安全有不损害用户体验的方法,Oauth2.0提供了一种无须用户参与的情况下获取访问令牌的方法,就是refresh_token...比如用户购买了第三方软件时间周期为1年,那么在这1年之内,access_token10天过期一次,这个时候就需要第三方软件利用refresh_token重新获取新的access_token来继续请求受保护的资源

    1.6K50

    为什么虚函数调用和分支预测失败影响计算性能?

    前言 我们经常会听到分支预测失败或者虚函数调用影响计算性能,那么为什么它们影响性能呢?带着这个疑问,我最近也看了一些博客和论文,这里结合之前看的一些点,整体做一个总结,和大家一起学习。...为什么虚函数调用和分支预测失败降低 CPU 计算性能? 虚函数调用与普通函数的调用的区别在于: 普通函数是一次直接调用,直接调用的跳转地址在编译时是确定的。...虚函数调用是一次间接调用,需要在运行时才能从虚表获取地址再跳转。...现代CPU流水线级数非常长,分支预测失败可能损失20个左右的时钟周期,因此对于复杂的流水线,好的分支预测器非常重要。...虚函数调用虽然多一次寻址,在总体影响性能的瓶颈点不在这,而是在于虚函数调用会有分支预测失败,而分支预测失败,导致 CPU 流水线冲刷,这才是虚函数调用影响性能的主要原因。

    1.2K10

    OAuth2.0与OAuth1.0你了解了吗?

    2.1.1 访问过程 1) 客户端向资源服务器请求未授权 Request Token 2) 服务器返回未授权Request Token和 secret,具体返回的参数为:oauth_tokenoauth_token_secret...5) 资源服务器将用户重定向回客户端,并带回授权过的 Request Token 也就是 oauth_token 6) 获取到授权 Request Token,再向资源服务器换取票据 accessToken...(省去了复杂的签名过程) 3.其他 1.授权码模式中,为什么不直接获取令牌,而是通过授权码,岂不是多此一举?...授权码一般有效期十分钟且只能被使用一次,攻击者即使获取到授权码,换到了令牌,当第三方应用也通过授权码获取令牌时,授权服务器就会因为授权码被使用两次而让令牌失效,从而保证安全。...References [1] OAuth1.0: http://oauth.net/core/1.0/ [2] 为什么授权模式为了避免 CSRF 攻击,可以在 URL 请求后面加个参数 state,这是什么原理

    3K10

    全面详解互联网企业开放API的 “守护神”

    我们还会思考另外一个问题,为什么标准流程下需要先获取CODE,然后再通过CODE获取ACCESS TOKEN呢?...这个原因可以结合前端通信环节中的必须经过两次浏览器重定向的描述,如果没有获取CODE这个流程,直接将ACCESS TOKEN重定向回浏览器,无疑这会将访问令牌暴露出去带来安全上的问题。...缺少了对应用的身份认证之后,当然在这种方式下安全性大打折扣,这是我们需要注意的事情。...同时客户端凭据这种授权方式中也不会有刷新令牌,因为授权系统认为客户端可以随时获取新令牌。...总结 开放平台的基础技术需要 “两条腿” 能够跑起来,这两条腿分别是网关和Oauth。网关可以让内部的API被外部调用Oauth可以保护这些被调用的API。Oauth是一种协议,也是一种工具。

    66940

    全面详解互联网企业开放API的 “守护神”

    我们还会思考另外一个问题,为什么标准流程下需要先获取CODE,然后再通过CODE获取ACCESS TOKEN呢?...这个原因可以结合前端通信环节中的必须经过两次浏览器重定向的描述,如果没有获取CODE这个流程,直接将ACCESS TOKEN重定向回浏览器,无疑这会将访问令牌暴露出去带来安全上的问题。...缺少了对应用的身份认证之后,当然在这种方式下安全性大打折扣,这是我们需要注意的事情。...同时客户端凭据这种授权方式中也不会有刷新令牌,因为授权系统认为客户端可以随时获取新令牌。...总结 开放平台的基础技术需要 “两条腿” 能够跑起来,这两条腿分别是网关和Oauth。网关可以让内部的API被外部调用Oauth可以保护这些被调用的API。Oauth是一种协议,也是一种工具。

    76440

    Spring OAuth2 实现始终获取新的令牌

    在第一次通过createAccessToken获取令牌后,每次请求令牌(access_token)过期后通过刷新的方式(/oauth/token?...分析期望效果 针对上面的期望效果我们需要修改createAccessToken、refreshAccessToken两个方法的源码,调用createAccessToken方法时不再判定是否使用已经存在的有效令牌...,而调用refreshAccessToken方法时需要删除响应的refresh_token的返回字段并把新的请求令牌与刷新令牌进行绑定。...", "expires_in": 7199, "scope": "read" } 可以看到上面使用同一个账号获取了两次令牌,而这两次的令牌内容是完全不同的,这也就是实现了针对同一个账号不同人登录时返回新的令牌的需求...同一个账户,上面虽然刷新了两次,但是令牌的有效期不会相互影响,第一次刷新使用的是第一次获取的刷新令牌,这样其实也就是刷新的第一次的请求令牌,与第二次的无关!!!

    2.1K20

    决定放弃 JWT 了!

    既然都要用Redis,为什么不采用Redis+Spring Security+OAuth2的认证方式呢?这种方式也是企业中经常采用的方案。...PDA端登录只需要护士输入如下两个参数: 用户名 密码 为什么呢?不需要选择医院吗?...这里就是根据根据SN号去唯一关联这台设备,这也就是为什么PDA登录不用选择医院的原因。 PDA在发出登录请求时只需要携带这个SN号,请求报文如下: POST /auth/oauth2/token?...缓存,存在缓存直接取,不存在则查数据库codeape/sys_oauth_client_details(通过feign接口远程调用服务查询)。...AuthenticationConverter 这个在第4步中的第②个步骤,根据请求中的参数和授权类型组装成对应的授权认证对象。

    61820

    你管这破玩意叫 OAuth2?

    在一些细心的用户视角看来,页面经历了从豆瓣到 qq,再从 qq 到豆瓣的两次页面跳转。 但作为一群专业的程序员,我们还应该从上帝视角来看这个过程。 ?...http:// www.douban.com/leadToAuthorize 豆瓣服务器响应一个重定向地址,指向 qq 授权登录的页面地址。...豆瓣服务器收到请求后,对 QQ 服务器发起了两次请求: 1. 用拿到的 code 去换 token 2....再用拿到的 token 换取用户信息 这个 code 和 token 都是有失效时间的,也因此保证了只要不在短时间内泄漏出去,就不会有安全风险。 拿到用户信息之后,就返回给了浏览器。...http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 为啥要这么跳来跳去 为什么,要这么麻烦呢?跳来跳去的。

    85721

    一张图搞定OAuth2.0

    一项新的技术,无非就是了解它是什么,为什么,怎么用。至于为什么,本篇文章不做重点探讨,网上会有各种文章举各种什么丢钥匙、发船票的例子供你去阅读,个人认为还是有些哗众取宠,没有聊到本质。...在一些细心的用户视角看来,页面经历了从豆瓣到qq,再从qq到豆瓣的两次页面跳转。但作为一群专业的程序员,我们还应该从上帝视角来看这个过程。... http://www.douban.com/leadToAuthorize 的请求,豆瓣服务器响应一个重定向地址,指向qq授权登录   浏览器接到重定向地址 http://www.qq.com/authorize...www.douban.com/callback  页面接到重定向,发起 http://www.douban.com/callback 请求 豆瓣服务器收到请求后,做了两件再次与QQ沟通的事,即模拟浏览器发起了两次请求...一个是用拿到的code去换token,另一个就是用拿到的token换取用户信息。最后将用户信息储存起来,返回给浏览器其首页的视图。到此OAuth2.0授权结束。 ?

    87031

    OAuth认证协议原理分析及使用方法

    其实这都是拜 OAuth所赐。 OAuth是什么? OAuth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证。 OAuth有什么用?为什么要使用OAuth?...举个我们身边国内的例子吧:比如人人网想要调用QQ邮箱的联系人列表,现在的方法是你需要在人人网输入你的QQ号,QQ密码才能调用,虽然网站上可能都自谓“不保留QQ用户名密码”,但是大家信吗?...及其它服务提供商定义的参数 这样 Consumer就取得了 请求另牌(包括另牌名 oauth_token,另牌密钥 oauth_token_secret。...oauth_token=请求另牌名 四,用户同意 Consumer访问 服务提供商资源 那么自动转回上面的 oauth_callback 里定义的网址。...不,oauth_timestamp,oauth_nonce。这两个是变化的。而且服务器验证一个 nonce(混淆码)是否已经被使用。

    1K20

    OAuth 2.0 扩展协议之 PKCE

    那 PKCE 为什么有这种魔力呢? 实际上它的原理是客户端提供一个自创建的证明给授权服务器, 授权服务器通过它来验证客户端,把访问令牌(access_token) 颁发给真实的客户端而不是伪造的。...授权码拦截攻击 上面是OAuth 2.0 授权码模式的完整流程, 授权码拦截攻击就是图中的C步骤发生的, 也就是授权服务器返回给客户端授权码的时候, 这么多步骤中为什么 C 步骤是不安全的呢?...code_verifier 对于每一个OAuth 授权请求, 客户端先创建一个代码验证器 code_verifier, 这是一个高熵加密的随机字符串, 使用URI 非保留字符 (Unreserved...endpoint 发起的这两次请求,该如何关联起来呢?...https://www.authorization-server.com/oauth2/token?

    1.5K20

    1 Springboot SpringCloud集成OAuth2入门详细教程

    认证通过后,认证服务器返回一个token给第三方,第三方就可以拿着token去访问已经被授权访问的资源了,第三方不需要知道你的账号密码。...已经取得了token了,我们就可以调用百度的一些api了,譬如可以通过GET方法发送如下请求包来调用获取当前登录用户的基本资料的开放API接口: GET https://openapi.baidu.com...原来是spring在获得token后,必须要调用一下resource.userInfoUri里的接口,看看到底有没有返回值,也就是要验证一下token是不是正确的,这一步是它自动完成的。...获得token——调用接口获取user details信息,如果成功了,才算正常,然后才会返回到你最开始调用的localhost:8080。...这一篇详细讲了OAuth客户端的工作流程,和集成springboot后的工作步骤,后面我们自己搭建OAuth服务端。

    1.7K21

    可能是第二好的 Spring OAuth 2.0 文章,艿艿端午在家写了 3 天~

    “补充知识:可能会有胖友问,为什么要创建 Client 的 client-id 和 client-secret 呢?...为什么要添加这个配置项呢?因为资源服务器会调用授权服务器的 /oauth/check_token 接口,而考虑到安全性,我们配置了该接口需要进过客户端认证。...客户端的角色,调用授权服务器的 /oauth/token 接口,使用密码模式进行授权,获得访问令牌。...③ 处,调用 OAuth2RestTemplate 的 #getAccessToken() 方法,调用授权服务器的 /oauth/token 接口,进行密码模式的授权。...可能胖友有疑惑,为什么会有刷新令牌呢?每次请求资源服务器时,都会在请求上带上访问令牌,这样它的泄露风险是相对高的。 因此,出于安全性的考虑,访问令牌的过期时间比较短,刷新令牌的过期时间比较长。

    2.1K30

    从0开始构建一个Oauth2Server服务 发起认证请求

    发起认证请求 无论您使用哪种授权类型或是否使用客户端密码,您现在都拥有一个可与 API 一起使用的 OAuth 2.0 Bearer Token。...如果您使用的是基于 JSON 的 API,那么它可能返回带有错误的 JSON 错误响应invalid_token。...POST /oauth/token HTTP/1.1 Host: authorization-server.com grant_type=refresh_token &refresh_token=xxxxxxxxxxx...当刷新令牌在每次使用后发生变化时,如果授权服务器检测到刷新令牌被使用了两次,则意味着它可能已被复制并被Attack者使用,授权服务器可以撤销所有访问令牌和相关的刷新令牌立即使用它。...此时,您将需要再次提示用户进行授权,从头开始新的 OAuth 流程。 您可能注意到“expires_in”属性指的是访问令牌,而不是刷新令牌。刷新令牌的到期时间有意从不传达给客户端。

    18630
    领券