【问题标题】:How can I retrieve the Access Token and Bypass CORS Policy in Spring Boot如何在 Spring Boot 中检索访问令牌和绕过 CORS 策略
【发布时间】:2020-04-21 00:27:45
【问题描述】:

我在 GraphQL/Spring Boot API 中实现了 Oauth2 身份验证,我想使用 Apollo 客户端从 VueJS 应用程序中使用它, 目前,我可以使用 Postman 做到这一点。但我在 Chrome 中有一个关于 CORS 的错误:

Access to fetch at 'https://server/as/authorization.oauth2?response_type=code&client_id=DEV_CLIENT&scope=api%20profile%20openid&state=sW2aJRg-ZA8vomsiuynS-nS1QobOUJY1Ytrji_gSFz8%3D&redirect_uri=http://localhost:5000/login/oauth2/code&nonce=' (redirected from 'http://localhost:5000/pdp/api/graphql') from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我在 API 中实现了这样的 CORS 配置:

 http.cors().and().csrf().disable()

我联系了支持团队,他们告诉我:“您正在尝试向 OIDC 服务发送 CORS 请求。请注意,我们没有在联合服务器上启用 CORS。解决方案是不发出任何 CORS 请求。”

1 - 在这种情况下,我如何从 API 中检索访问令牌并在前端使用它(Oauth2)? 2 - 我如何绕过服务器的 CORS 策略,知道他们告诉我它已被禁用?

谢谢

【问题讨论】:

标签: spring-boot vue.js oauth-2.0


【解决方案1】:

如果您无法在服务器中控制/设置 CORS 源策略,那么您无法从浏览器中的 VUEJS 应用程序执行任何操作。它是限制这一点的浏览器。您也可以询问他们是否支持 jsonp。这是一个如何做到这一点的链接。

https://www.freecodecamp.org/news/use-jsonp-and-other-alternatives-to-bypass-the-same-origin-policy-17114a5f2016/

如果一切都失败了,那么编写一个小型后端服务,该服务从 API 检索访问令牌并将令牌传递给浏览器中的 VUEJS 应用程序。

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 2021-12-19
    • 1970-01-01
    • 2019-11-07
    • 2021-08-14
    • 2018-08-04
    • 2015-09-08
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多