일회용 비밀번호(OTP)는 비밀번호만으로 보안을 강화하는 메커니즘입니다. 시간 기반 OTP(TOTP)가 사용자의 전화기에 저장되고 사용자가 알고 있는 것(비밀번호)과 결합되면 SMS 공급자에 대한 종속성을 추가하지 않고도 다단계 인증으로 쉽게 진입할 수 있습니다. 이 비밀번호와 TOTP 조합은 Google, GitHub, Facebook, Salesforce 등을 포함한 많은 인기 웹사이트에서 사용됩니다.
otp
라이브러리를 사용하면 자신의 애플리케이션에 TOTP를 쉽게 추가하여 대량 비밀번호 침해 및 악성 코드에 대한 사용자 보안을 강화할 수 있습니다.
TOTP는 표준화되어 널리 배포되므로 모바일 클라이언트와 소프트웨어 구현이 많습니다.
otp
다음을 지원합니다:작업 중인 등록 작업 흐름의 예를 GitHub에서 문서화했지만 기본 사항은 다음과 같습니다.
key,_ := totp.Generate(...)
.key.Secret()
및 key.Image(...)
.totp.Validate(...)
.key.Secret()
GenerateCode
함수와 카운터 또는 time.Time
구조체를 사용하십시오.GenerateCodeCustom
사용하십시오.totp.Validate(...)
사용자가 TOTP 장치에 대한 액세스 권한을 상실하면 더 이상 계정에 액세스할 수 없습니다. TOTP는 분실, 도난 또는 손상될 수 있는 모바일 장치에 구성되는 경우가 많기 때문에 이는 일반적인 문제입니다. 이러한 이유로 많은 공급자는 사용자에게 "백업 코드" 또는 "복구 코드"를 제공합니다. 이는 TOTP 대신 사용할 수 있는 일회용 코드 세트입니다. 이는 백엔드에 저장하는 무작위로 생성된 문자열일 수 있습니다. Github의 문서는 사용자 경험에 대한 개요를 제공합니다.
아이디어, 버그 및 일반적인 생각을 보려면 Github에서 이슈를 열어주세요. 물론 Pull Request가 선호됩니다 :)
otp
Apache 라이센스 버전 2.0에 따라 라이센스가 부여됩니다.