Maison >développement back-end >Golang >Comment sécuriser les requêtes HTTP angulaires et gérer CORS dans Go ?
Gestion des en-têtes d'autorisation dans Angular et Go
Pour ajouter un en-tête d'autorisation aux requêtes HTTP angulaires, envisagez d'utiliser des intercepteurs HTTP. Ils vous permettent d'ajouter des en-têtes à chaque requête, tandis que les Guards peuvent être utilisés pour la protection de la route.
Exemple d'intercepteur HTTP angulaire :
// 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); } }
Enregistrez l'intercepteur en tant qu'intercepteur fournisseur dans 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, }, ... ], ...
Go CORS Configuration :
Dans Go, assurez-vous que votre configuration CORS correspond aux en-têtes HTTP envoyés par le client. Si nécessaire, autorisez tous les en-têtes :
headersOk := handlers.AllowedHeaders([]string{"*"}) originsOk := handlers.AllowedOrigins([]string{"*"}) methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
Inspectez les en-têtes dans vos outils de développement Chrome et envisagez de reconfigurer soigneusement vos paramètres CORS pour les aligner sur les en-têtes du client. Cela résoudra les problèmes CORS que vous rencontrez.
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!