fix: face login

This commit is contained in:
zzw
2026-11-02 10:34:59 +08:00
parent 179a4e5f27
commit d4545983c8
5 changed files with 13 additions and 40 deletions
Binary file not shown.
+1 -3
View File
@@ -550,9 +550,7 @@ message AdminUserDetailReq {
int64 id = 1; int64 id = 1;
} }
// FaceLoginReq 设备人脸登录。gRPC/网关不走 multipart,传 file(图片字节) 或共享盘 file_path 其一。 // FaceLoginReq 设备人脸登录。gRPC/网关不走 multipart,传 file(图片字节)。
message FaceLoginReq { message FaceLoginReq {
bytes file = 1; bytes file = 1;
string file_path = 2;
string client_code = 3;
} }
+3 -22
View File
@@ -2378,12 +2378,10 @@ func (x *AdminUserDetailReq) GetId() int64 {
return 0 return 0
} }
// FaceLoginReq 设备人脸登录。gRPC/网关不走 multipart,传 file(图片字节) 或共享盘 file_path 其一。 // FaceLoginReq 设备人脸登录。gRPC/网关不走 multipart,传 file(图片字节)。
type FaceLoginReq struct { type FaceLoginReq struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
File []byte `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` File []byte `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"`
FilePath string `protobuf:"bytes,2,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
ClientCode string `protobuf:"bytes,3,opt,name=client_code,json=clientCode,proto3" json:"client_code,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -2425,20 +2423,6 @@ func (x *FaceLoginReq) GetFile() []byte {
return nil return nil
} }
func (x *FaceLoginReq) GetFilePath() string {
if x != nil {
return x.FilePath
}
return ""
}
func (x *FaceLoginReq) GetClientCode() string {
if x != nil {
return x.ClientCode
}
return ""
}
var File_analysis_analysis_proto protoreflect.FileDescriptor var File_analysis_analysis_proto protoreflect.FileDescriptor
const file_analysis_analysis_proto_rawDesc = "" + const file_analysis_analysis_proto_rawDesc = "" +
@@ -2580,12 +2564,9 @@ const file_analysis_analysis_proto_rawDesc = "" +
"\x04page\x18\x02 \x01(\x05R\x04page\x12\x12\n" + "\x04page\x18\x02 \x01(\x05R\x04page\x12\x12\n" +
"\x04size\x18\x03 \x01(\x05R\x04size\"$\n" + "\x04size\x18\x03 \x01(\x05R\x04size\"$\n" +
"\x12AdminUserDetailReq\x12\x0e\n" + "\x12AdminUserDetailReq\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x03R\x02id\"`\n" + "\x02id\x18\x01 \x01(\x03R\x02id\"\"\n" +
"\fFaceLoginReq\x12\x12\n" + "\fFaceLoginReq\x12\x12\n" +
"\x04file\x18\x01 \x01(\fR\x04file\x12\x1b\n" + "\x04file\x18\x01 \x01(\fR\x04file2\xe6\x11\n" +
"\tfile_path\x18\x02 \x01(\tR\bfilePath\x12\x1f\n" +
"\vclient_code\x18\x03 \x01(\tR\n" +
"clientCode2\xe6\x11\n" +
"\bAnalysis\x12W\n" + "\bAnalysis\x12W\n" +
"\x12InternalCreateUser\x12\x1f.analysis.InternalCreateUserReq\x1a .analysis.InternalCreateUserData\x12`\n" + "\x12InternalCreateUser\x12\x1f.analysis.InternalCreateUserReq\x1a .analysis.InternalCreateUserData\x12`\n" +
"\x15InternalSetRegistered\x12\".analysis.InternalSetRegisteredReq\x1a#.analysis.InternalSetRegisteredData\x12k\n" + "\x15InternalSetRegistered\x12\".analysis.InternalSetRegisteredReq\x1a#.analysis.InternalSetRegisteredData\x12k\n" +
@@ -43,11 +43,11 @@ func (l *FaceLoginLogic) FaceLogin(in *analysis.FaceLoginReq) (*analysis.Respons
if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty {
return common.OutResponse(utils.ErrorParams, msg), nil return common.OutResponse(utils.ErrorParams, msg), nil
} }
if len(req.File) == utils.NumberZero && req.FilePath == utils.StringEmpty { if len(req.File) == utils.NumberZero {
return common.FailResponse(utils.ErrorFileUpFailed), nil return common.FailResponse(utils.ErrorFileUpFailed), nil
} }
imgPath, cleanup, err := face.PrepareImagePath(req.File, req.FilePath) imgPath, cleanup, err := face.PrepareImagePath(req.File, utils.StringEmpty)
if err != nil { if err != nil {
l.Errorf("face login prepare image: %v", err) l.Errorf("face login prepare image: %v", err)
return common.FailResponse(utils.ErrorFileUpFailed), nil return common.FailResponse(utils.ErrorFileUpFailed), nil
@@ -66,10 +66,6 @@ func (l *FaceLoginLogic) FaceLogin(in *analysis.FaceLoginReq) (*analysis.Respons
return common.FailResponse(utils.ErrorFaceNotMatch), nil return common.FailResponse(utils.ErrorFaceNotMatch), nil
} }
clientCode := req.ClientCode
if clientCode == utils.StringEmpty {
clientCode = dao.ClientCodeUserSkin
}
if l.svcCtx.UserSvcName == utils.StringEmpty { if l.svcCtx.UserSvcName == utils.StringEmpty {
return common.FailResponse(utils.Fail), nil return common.FailResponse(utils.Fail), nil
} }
@@ -80,7 +76,7 @@ func (l *FaceLoginLogic) FaceLogin(in *analysis.FaceLoginReq) (*analysis.Respons
} }
token, err := userpb.NewUserClient(cli.Conn()).InternalLoginByUserId(l.ctx, &userpb.InternalLoginByUserIdReq{ token, err := userpb.NewUserClient(cli.Conn()).InternalLoginByUserId(l.ctx, &userpb.InternalLoginByUserIdReq{
UserId: userID, UserId: userID,
ClientCode: clientCode, ClientCode: dao.ClientCodeUserSkin,
}) })
if err != nil { if err != nil {
l.Errorf("face login issue token: %v", err) l.Errorf("face login issue token: %v", err)
+3 -5
View File
@@ -29,15 +29,13 @@ func (p FaceBindValidator) GetMessage() validate.ValidatorMessages {
} }
type FaceLoginValidator struct { type FaceLoginValidator struct {
File []byte File []byte `validate:"required,min=1"`
FilePath string `validate:"omitempty,max=512"`
ClientCode string `validate:"omitempty,max=32"`
} }
func (p FaceLoginValidator) GetMessage() validate.ValidatorMessages { func (p FaceLoginValidator) GetMessage() validate.ValidatorMessages {
return validate.ValidatorMessages{ return validate.ValidatorMessages{
"FilePath.max": "file_path 过长", "File.required": "file 必传",
"ClientCode.max": "client_code 过长", "File.min": "file 必传",
} }
} }