如何向 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 中,CORS 标头需要与 Angular 应用程序发送的标头匹配。要允许所有标头,请使用以下内容:
headersOk := handlers.AllowedHeaders([]string{"*"}) originsOk := handlers.AllowedOrigins([]string{"*"}) methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
或者,仔细定义允许的标头。
采取这些步骤后,应成功传输和接受授权标头,从而启用Angular 和 Go 之间的通信。
以上是如何保护 Angular-Go API 通信的安全:添加授权标头?的详细内容。更多信息请关注PHP中文网其他相关文章!