mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
8aade7f40e
* added regulation validator * made regulations find_time and ban_time values duration notation strings * added DefaultRegulationConfiguration for the validator * made session expiration and inactivity values duration notation strings * TOTP period does not need to be converted because adjustment should be discouraged * moved TOTP defaults to DefaultTOTPConfiguration and removed the consts * arranged the root config validator in configuration file order * adjusted tests for the changes * moved duration notation docs to root of configuration * added references to duration notation where applicable * project wide gofmt and goimports: * run gofmt * run goimports -local github.com/authelia/authelia -w on all files * Make jwt_secret error uniform and add tests * now at 100% coverage for internal/configuration/validator/configuration.go
28 lines
512 B
Go
28 lines
512 B
Go
package handlers
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/pquerna/otp"
|
|
"github.com/pquerna/otp/totp"
|
|
)
|
|
|
|
type TOTPVerifier interface {
|
|
Verify(token, secret string) (bool, error)
|
|
}
|
|
|
|
type TOTPVerifierImpl struct {
|
|
Period uint
|
|
Skew uint
|
|
}
|
|
|
|
func (tv *TOTPVerifierImpl) Verify(token, secret string) (bool, error) {
|
|
opts := totp.ValidateOpts{
|
|
Period: tv.Period,
|
|
Skew: tv.Skew,
|
|
Digits: otp.DigitsSix,
|
|
Algorithm: otp.AlgorithmSHA1,
|
|
}
|
|
return totp.ValidateCustom(token, secret, time.Now().UTC(), opts)
|
|
}
|