ワンタイム パスワード (OTP) は、パスワードのみよりもセキュリティを向上させるメカニズムです。時間ベースの OTP (TOTP) がユーザーの電話機に保存され、ユーザーが知っているもの (パスワード) と組み合わせると、SMS プロバイダーへの依存関係を追加することなく、多要素認証への簡単な移行が可能になります。このパスワードと TOTP の組み合わせは、Google、GitHub、Facebook、Salesforce など、多くの人気のある Web サイトで使用されています。
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 の代わりに使用できる 1 回限りの使用コードのセットです。これらは、単にランダムに生成された文字列であり、バックエンドに保存することができます。 Github のドキュメントでは、ユーザー エクスペリエンスの概要が説明されています。
アイデア、バグ、一般的な考えについては、Github で問題を開いてください。もちろんプルリクエストが優先されます:)
otp
、Apache License バージョン 2.0 に基づいてライセンスされています。