【发布时间】: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 策略,知道他们告诉我它已被禁用?
谢谢
【问题讨论】:
-
您可以通过添加指向 CorsRegistry 的链接来避免服务器上的 CORS 检查,如 stackoverflow.com/a/60684078/4891892
标签: spring-boot vue.js oauth-2.0