亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OAuth2 與 Google - CORS 錯誤(Angular + Spring boot)

OAuth2 與 Google - CORS 錯誤(Angular + Spring boot)

手掌心 2023-10-12 14:47:25
我遇到 CORS 錯誤問題。我確實請求 Google oAuth2,但收到 CORS 錯誤:我想獲得 google 身份驗證并生成 JWT 令牌。當我在不使用客戶端的情況下執行此操作時,一切都很好。當我發送角度請求時,這是 CORS 的問題。我允許所有類型的 CORS。為什么我會收到此錯誤?Access to XMLHttpRequest at 'https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=1020159669873-d9r35ssmnejud852bam87d8gqtcj5qf1.apps.googleusercontent.com&scope=openid%20profile%20email&state=8nizHP1X2z9sA8m0vqM4Lzd6VT24R15eSw5flteTywM%3D&redirect_uri=http://localhost:8080/oauth2/callback/google' (redirected from 'http://localhost:8080/oauth2/authorization/google')from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Cross-Origin Read Blocking (CORB) blocked cross-origin response https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=1020159669873-d9r35ssmnejud852bam87d8gqtcj5qf1.apps.googleusercontent.com&scope=openid%20profile%20email&state=8nizHP1X2z9sA8m0vqM4Lzd6VT24R15eSw5flteTywM%3D&redirect_uri=http://localhost:8080/oauth2/callback/google with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.我的角度請求: googleLogin(): Observable<LoginResponse> {    return this.http.get<LoginResponse>    (environment.baseUrl + '/oauth2/authorization/google')      .pipe(tap(response => {        localStorage.setItem('access_token', response.accessToken);      }));  }//...public onGoogleLogin(): void {   this.authService.googleLogin().subscribe(); }//...跨域資源配置: @Override    public void addCorsMappings(CorsRegistry registry) {        registry                .addMapping("/**")                .allowedOrigins("*")                .allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE")                .maxAge(MAX_AGE_SECS);    }
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

您無法在此示例中獲取令牌,因為您需要進行實際的重定向。有幾種方法可以規避此要求,RFC https://www.rfc-editor.org/rfc/rfc6749#section-1.2中有詳細說明

  1. 在彈出窗口中啟動授權流程,并通過瀏覽器中提供的 API 將服務器收到的令牌postMessage()從彈出窗口傳回 Web 應用程序。

  2. 保存狀態,無論狀態是什么,重定向到將啟動授權流程的服務器,并在將令牌交換為授權后,使用令牌作為查詢字符串參數重定向回 Web 應用程序。然后使用它并恢復狀態。


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號