httppeeridauth

package
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const PeerIDAuthScheme = handshake.PeerIDAuthScheme

PeerIDAuthScheme 定义了对等节点身份认证方案 使用 handshake 包中定义的认证方案常量

View Source
const ProtocolID = "/http-peer-id-auth/1.0.0"

ProtocolID 定义了 HTTP 对等节点身份认证协议的版本标识 格式为: /http-peer-id-auth/版本号

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientPeerIDAuth

type ClientPeerIDAuth struct {
	// 客户端私钥
	PrivKey crypto.PrivKey
	// token 的有效期
	TokenTTL time.Duration
	// contains filtered or unexported fields
}

ClientPeerIDAuth 实现了对等节点身份认证的客户端

func (*ClientPeerIDAuth) AuthenticatedDo

func (a *ClientPeerIDAuth) AuthenticatedDo(client *http.Client, req *http.Request) (peer.ID, *http.Response, error)

AuthenticatedDo 类似于 http.Client.Do,但会在需要时执行 dep2p 对等节点身份认证握手 建议传入设置了 GetBody 的 http.Request,这样在之前使用的 token 过期时可以重试请求

参数:

  • client: HTTP 客户端
  • req: HTTP 请求

返回:

  • peer.ID: 对等节点 ID
  • *http.Response: HTTP 响应
  • error: 错误信息

type ServerPeerIDAuth

type ServerPeerIDAuth struct {
	// PrivKey 是服务器的私钥
	PrivKey crypto.PrivKey
	// TokenTTL 是令牌的有效期
	TokenTTL time.Duration
	// Next 是认证成功后要执行的处理函数
	Next func(peer peer.ID, w http.ResponseWriter, r *http.Request)
	// NoTLS 允许服务器接受没有 TLS ServerName 的请求
	// 当其他组件终止 TLS 连接时使用
	NoTLS bool
	// ValidHostnameFn 在 NoTLS 为 true 时必需
	// 服务器只接受 Host 头返回 true 的请求
	ValidHostnameFn func(hostname string) bool

	// HmacKey 是用于 HMAC 计算的密钥
	HmacKey []byte
	// contains filtered or unexported fields
}

ServerPeerIDAuth 是处理对等节点身份认证的服务器结构体

func (*ServerPeerIDAuth) ServeHTTP

func (a *ServerPeerIDAuth) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP 实现了 http.Handler 接口 使用 dep2p 对等节点身份认证方案验证请求 如果设置了 Next 处理函数,将在认证成功后调用它 参数:

  • w: HTTP 响应写入器
  • r: HTTP 请求

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL