mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	fix issuer of OTP URI should be URI-encoded. (#6634)
* fix: Issuer of OTP URI should be URI-encoded. follow this link https://github.com/google/google-authenticator/wiki/Key-Uri-Format . * filter unsafe character ':' in issuer * Use Replace rather than ReplaceAll
This commit is contained in:
		@@ -74,11 +74,13 @@ func twofaGenerateSecretAndQr(ctx *context.Context) bool {
 | 
				
			|||||||
	if uri != nil {
 | 
						if uri != nil {
 | 
				
			||||||
		otpKey, err = otp.NewKeyFromURL(uri.(string))
 | 
							otpKey, err = otp.NewKeyFromURL(uri.(string))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						// Filter unsafe character ':' in issuer
 | 
				
			||||||
 | 
						issuer := strings.Replace(setting.AppName+" ("+setting.Domain+")", ":", "", -1)
 | 
				
			||||||
	if otpKey == nil {
 | 
						if otpKey == nil {
 | 
				
			||||||
		err = nil // clear the error, in case the URL was invalid
 | 
							err = nil // clear the error, in case the URL was invalid
 | 
				
			||||||
		otpKey, err = totp.Generate(totp.GenerateOpts{
 | 
							otpKey, err = totp.Generate(totp.GenerateOpts{
 | 
				
			||||||
			SecretSize:  40,
 | 
								SecretSize:  40,
 | 
				
			||||||
			Issuer:      setting.AppName + " (" + strings.TrimRight(setting.AppURL, "/") + ")",
 | 
								Issuer:      issuer,
 | 
				
			||||||
			AccountName: ctx.User.Name,
 | 
								AccountName: ctx.User.Name,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user