mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-06 05:30:05 +00:00
♻️ v4: 去掉添加 Agent ID 要求 需要更新面板 close #83
This commit is contained in:
@@ -2,7 +2,6 @@ package rpc
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
|
||||
"github.com/naiba/nezha/service/dao"
|
||||
"google.golang.org/grpc/codes"
|
||||
@@ -11,36 +10,34 @@ import (
|
||||
)
|
||||
|
||||
type AuthHandler struct {
|
||||
ClientID string
|
||||
ClientSecret string
|
||||
}
|
||||
|
||||
func (a *AuthHandler) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
|
||||
return map[string]string{"client_id": a.ClientID, "client_secret": a.ClientSecret}, nil
|
||||
return map[string]string{"client_secret": a.ClientSecret}, nil
|
||||
}
|
||||
|
||||
func (a *AuthHandler) RequireTransportSecurity() bool {
|
||||
return !dao.Conf.Debug
|
||||
}
|
||||
|
||||
func (a *AuthHandler) Check(ctx context.Context) (clientID uint64, err error) {
|
||||
func (a *AuthHandler) Check(ctx context.Context) (uint64, error) {
|
||||
md, ok := metadata.FromIncomingContext(ctx)
|
||||
if !ok {
|
||||
err = status.Errorf(codes.Unauthenticated, "获取 metaData 失败")
|
||||
return
|
||||
return 0, status.Errorf(codes.Unauthenticated, "获取 metaData 失败")
|
||||
}
|
||||
|
||||
var clientSecret string
|
||||
if value, ok := md["client_id"]; ok {
|
||||
clientID, _ = strconv.ParseUint(value[0], 10, 64)
|
||||
}
|
||||
if value, ok := md["client_secret"]; ok {
|
||||
clientSecret = value[0]
|
||||
}
|
||||
|
||||
dao.ServerLock.RLock()
|
||||
defer dao.ServerLock.RUnlock()
|
||||
if server, has := dao.ServerList[clientID]; !has || server.Secret != clientSecret {
|
||||
err = status.Errorf(codes.Unauthenticated, "客户端认证失败")
|
||||
clientID, hasID := dao.SecretToID[clientSecret]
|
||||
_, hasServer := dao.ServerList[clientID]
|
||||
if !hasID || !hasServer {
|
||||
return 0, status.Errorf(codes.Unauthenticated, "客户端认证失败")
|
||||
}
|
||||
return
|
||||
return clientID, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user