首页 > 后端开发 > Golang > 如何保护 Angular-Go API 通信的安全:添加授权标头?

如何保护 Angular-Go API 通信的安全:添加授权标头?

Susan Sarandon
发布: 2024-12-16 04:13:17
原创
681 人浏览过

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 中,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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板