From f395dc145bf5fa2cbed14591f5bb671437110237 Mon Sep 17 00:00:00 2001 From: maru Date: Mon, 15 Apr 2024 03:15:10 -0400 Subject: [PATCH] Code consistency --- api/account/login.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/api/account/login.go b/api/account/login.go index 9bddb2c..b6caa3d 100644 --- a/api/account/login.go +++ b/api/account/login.go @@ -15,37 +15,41 @@ type LoginResponse GenericAuthResponse // /account/login - log into account func Login(request LoginRequest) (LoginResponse, error) { + var response LoginResponse + if !isValidUsername(request.Username) { - return LoginResponse{}, fmt.Errorf("invalid username") + return response, fmt.Errorf("invalid username") } if len(request.Password) < 6 { - return LoginResponse{}, fmt.Errorf("invalid password") + return response, fmt.Errorf("invalid password") } key, salt, err := db.FetchAccountKeySaltFromUsername(request.Username) if err != nil { if err == sql.ErrNoRows { - return LoginResponse{}, fmt.Errorf("account doesn't exist") + return response, fmt.Errorf("account doesn't exist") } - return LoginResponse{}, err + return response, err } if !bytes.Equal(key, deriveArgon2IDKey([]byte(request.Password), salt)) { - return LoginResponse{}, fmt.Errorf("password doesn't match") + return response, fmt.Errorf("password doesn't match") } token := make([]byte, TokenSize) _, err = rand.Read(token) if err != nil { - return LoginResponse{}, fmt.Errorf("failed to generate token: %s", err) + return response, fmt.Errorf("failed to generate token: %s", err) } err = db.AddAccountSession(request.Username, token) if err != nil { - return LoginResponse{}, fmt.Errorf("failed to add account session") + return response, fmt.Errorf("failed to add account session") } - return LoginResponse{Token: base64.StdEncoding.EncodeToString(token)}, nil + response.Token = base64.StdEncoding.EncodeToString(token) + + return response, nil }