Maison >développement back-end >Golang >Comment sécuriser la communication de l'API Angular-Go : ajouter des en-têtes d'autorisation ?

Comment sécuriser la communication de l'API Angular-Go : ajouter des en-têtes d'autorisation ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-16 04:13:17681parcourir

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

Comment ajouter un en-tête d'autorisation aux requêtes HTTP angulaires

Lorsque vous essayez de connecter une application angulaire à une API Go, il est essentiel d'inclure l'autorisation en-têtes dans les requêtes HTTP. Cela sécurise la communication entre le client et le serveur. Ce qui suit montre comment y parvenir :

Implémentation angulaire :

Dans Angular 4 et versions ultérieures, il est recommandé d'utiliser des intercepteurs HTTP pour appliquer les en-têtes d'autorisation de manière cohérente aux requêtes. Voici un exemple d'intercepteur :

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);
  }
}

Cet intercepteur peut être enregistré dans le module Angular :

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

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

Implémentation Go :

Dans Go, les en-têtes CORS doivent correspondre à ceux envoyés par l'application Angular. Pour autoriser tous les en-têtes, utilisez ce qui suit :

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

Vous pouvez également définir soigneusement les en-têtes autorisés.

Une fois ces étapes effectuées, les en-têtes d'autorisation doivent être transmis et acceptés avec succès, permettant ainsi à communication entre Angular et Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn