ホームページ >バックエンド開発 >Golang >Go で Angular HTTP リクエストを保護し、CORS を処理する方法

Go で Angular HTTP リクエストを保護し、CORS を処理する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 21:25:12296ブラウズ

How to Secure Angular HTTP Requests and Handle CORS in Go?

Angular と Go での認可ヘッダーの処理

Angular HTTP リクエストに認可ヘッダーを追加するには、HTTP インターセプターの利用を検討してください。各リクエストにヘッダーを追加できる一方で、ガードはルート保護に使用できます。

Angular HTTP インターセプターの例:

// auth.interceptor.ts
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AuthService } from './auth.service';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    req = req.clone({
      setHeaders: {
        'Content-Type': 'application/json; charset=utf-8',
        'Accept': 'application/json',
        'Authorization': `Bearer ${AuthService.getToken()}`,
      },
    });

    return next.handle(req);
  }
}

インターセプターをapp.module.ts のプロバイダー:

// app.module.ts
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { AuthInterceptor } from '../auth/auth.interceptor';

...

imports: [
    HttpClientModule,
    ...
],
providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: AuthInterceptor,
      multi: true,
    },
    ...
],

...

CORS に移動設定:

Go では、CORS 設定がクライアントから送信された HTTP ヘッダーと一致していることを確認します。必要に応じて、すべてのヘッダーを許可します:

headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

Chrome デベロッパー ツールでヘッダーを検査し、クライアントのヘッダーに合わせて CORS 設定を慎重に再構成することを検討してください。これにより、発生している CORS の問題が解決されます。

以上がGo で Angular HTTP リクエストを保護し、CORS を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。