package forget import ( "context" "git.apinb.com/bsm-sdk/core/crypto/encipher" "git.apinb.com/bsm-sdk/core/errcode" "git.apinb.com/bsm-sdk/core/print" "git.apinb.com/bsm-sdk/core/utils" "git.apinb.com/bsm-sdk/sample/internal/impl" "git.apinb.com/bsm-sdk/sample/internal/models" "git.apinb.com/bsm-sdk/sample/internal/vars" pb "git.apinb.com/bsm-sdk/sample/pb" ) // 重罢密码 func Reset(ctx context.Context, in *pb.ForgetResetRequest) (reply *pb.ForgetReply, err error) { if in.Identity == "" || in.Password == "" { return nil, errcode.ErrInvalidArgument } pa, err := models.GetsampleAccountByField("identity", in.Identity) if err != nil { return nil, err } if pa.Status == vars.Status_Disable { return nil, errcode.ErrPermissionDenied } err = impl.DBService.Model(&models.sampleAccount{}).Where("identity = ? ", pa.Identity).Update("password", utils.Md5(in.Password)).Error if err != nil { print.Error("Update sample account password by identity %+v error:%v", in.Identity, err) return nil, errcode.ErrDB } paExtend := map[string]string{ "Rights": pa.Rights, } token, err := encipher.GenerateTokenAes(uint(pa.ID), pa.Identity, "", pa.Rights, nil, paExtend) if err != nil { print.Error("encipher.GenerateTokenAes by id %v identity %v rights %v extend %v error:%v", pa.ID, pa.Identity, pa.Rights, paExtend, err) return nil, errcode.ErrDB } //save token to cache. err = impl.RedisService.Client.Set(impl.RedisService.Ctx, vars.TokenPrefix+pa.Identity, token, 0).Err() if err != nil { print.Error("Set redis cache by key %v error:%v", vars.TokenPrefix+pa.Identity, err) return nil, errcode.ErrInternal } return &pb.ForgetReply{ Identity: pa.Identity, Token: token, Extend: paExtend, }, nil }