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 请求
Click to show internal directories.
Click to hide internal directories.