MCPcopy Create free account
hub / github.com/gogs/gogs / generateRecoveryCodes

Function generateRecoveryCodes

internal/database/two_factors.go:136–149  ·  view source on GitHub ↗

generateRecoveryCodes generates N number of recovery codes for 2FA.

(userID int64, n int)

Source from the content-addressed store, hash-verified

134
135// generateRecoveryCodes generates N number of recovery codes for 2FA.
136func generateRecoveryCodes(userID int64, n int) ([]*TwoFactorRecoveryCode, error) {
137 recoveryCodes := make([]*TwoFactorRecoveryCode, n)
138 for i := 0; i < n; i++ {
139 code, err := strutil.RandomChars(10)
140 if err != nil {
141 return nil, errors.Wrap(err, "generate random characters")
142 }
143 recoveryCodes[i] = &TwoFactorRecoveryCode{
144 UserID: userID,
145 Code: strings.ToLower(code[:5] + "-" + code[5:]),
146 }
147 }
148 return recoveryCodes, nil
149}

Callers 2

CreateMethod · 0.85
RegenerateRecoveryCodesFunction · 0.85

Calls 1

RandomCharsFunction · 0.92

Tested by

no test coverage detected