首頁 >後端開發 >Golang >如何保護 Angular-Go API 通訊的安全性:新增授權標頭?

如何保護 Angular-Go API 通訊的安全性:新增授權標頭?

Susan Sarandon
Susan Sarandon原創
2024-12-16 04:13:17685瀏覽

How to Secure Angular-Go API Communication:  Adding Authorization Headers?

如何向Angular HTTP 請求添加授權標頭

當嘗試將Angular 應用程式連接到Go API 時,必須包含授權HTTP 請求中的標頭。這保證了客戶端和伺服器之間的通訊安全。以下示範如何實現此目的:

Angular 實作:

在Angular 4 及更高版本中,建議使用HTTP 攔截器將授權標頭一致地應用於請求。以下是攔截器的範例:

import { Injectable } from '@angular/core';
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';

import { Observable } from 'rxjs';

import { AuthService } from './auth.service';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    req = req.clone({
      setHeaders: {
        Authorization: `Bearer ${AuthService.getToken()}`,
      },
    });

    return next.handle(req);
  }
}

此攔截器可以在Angular 模組註冊:

import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';

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

Go 實作:

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

在Go 中,CORS 標頭需要與Angular 應用程式發送的標頭相符。若要允許所有標頭,請使用以下內容:

或者,仔細定義允許的標頭。 採取這些步驟後,應成功傳輸和接受授權標頭,從而啟用Angular 和 Go 之間的通訊。

以上是如何保護 Angular-Go API 通訊的安全性:新增授權標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn