Fix 2FA login with both TOTP and U2F enabled

The `2FA.Enabled` field in `/auth`'s JSON output seems to be a bitmap of
some sort, as the API returns `3` when both TOTP and U2F login is on.
This commit changes some `Enabled == 1` checks to `Enabled != 0` to
handle this case properly.

Fixes #250
This commit is contained in:
Daniel Bertalan 2023-04-14 18:13:41 +02:00 committed by Simon Ser
parent 1e85c15ffc
commit d18edadd05
2 changed files with 2 additions and 2 deletions

View File

@ -134,7 +134,7 @@ func authenticate(c *protonmail.Client, cachedAuth *CachedAuth, username string)
return nil, fmt.Errorf("cannot re-authenticate: %v", err)
}
if auth.TwoFactor.Enabled == 1 {
if auth.TwoFactor.Enabled != 0 {
return nil, fmt.Errorf("cannot re-authenticate: two factor authentication enabled, please login again manually")
}
} else if err != nil {

View File

@ -291,7 +291,7 @@ func main() {
log.Fatal(err)
}
if a.TwoFactor.Enabled == 1 {
if a.TwoFactor.Enabled != 0 {
if a.TwoFactor.TOTP != 1 {
log.Fatal("Only TOTP is supported as a 2FA method")
}