Tfa
in package
Table of Contents
Properties
- $tfa : TwoFactorAuth
Methods
- __construct() : mixed
- Constructor
- authenticate() : TfaAuthResult
- 2段階認証コードを検証する
- checkAuthority() : bool
- checkCorrectTime() : bool
- サーバー時間が正しいかチェック
- createSecret() : string
- 秘密鍵を作成
- getSecretForManual() : string
- 秘密鍵を表示
- getSecretForQRCode() : string
- 秘密鍵のQRコード画像を取得
- hasValidSecretKey() : bool
- 秘密鍵が登録済みかつ復号可能な状態か。
- isAvailable() : bool
- isAvailableAccount() : bool
- 2段階認証を要求すべきアカウントか判定する。
- verifyCode() : bool
- 一時トークンが正しいかチェック
- getSecretKey() : TfaSecretKeyResult
- 秘密鍵を取得する。
Properties
$tfa
protected
TwoFactorAuth
$tfa
Methods
__construct()
Constructor
public
__construct(string|null $appName) : mixed
Parameters
- $appName : string|null
-
アプリケーション名(QRコードのアカウント名に使われる)
authenticate()
2段階認証コードを検証する
public
authenticate(int $uid, string $code) : TfaAuthResult
Parameters
- $uid : int
- $code : string
Return values
TfaAuthResultcheckAuthority()
public
checkAuthority() : bool
Return values
boolcheckCorrectTime()
サーバー時間が正しいかチェック
public
checkCorrectTime() : bool
Return values
boolcreateSecret()
秘密鍵を作成
public
createSecret() : string
Return values
stringgetSecretForManual()
秘密鍵を表示
public
getSecretForManual(string $secret) : string
Parameters
- $secret : string
-
秘密鍵
Return values
stringgetSecretForQRCode()
秘密鍵のQRコード画像を取得
public
getSecretForQRCode(string $secret, string $label) : string
Parameters
- $secret : string
-
秘密鍵
- $label : string
-
ラベル
Return values
string —data:image
hasValidSecretKey()
秘密鍵が登録済みかつ復号可能な状態か。
public
hasValidSecretKey(int $uid) : bool
登録画面で「再登録 UI を出すか/登録済み表示にするか」の判定に使う。
Parameters
- $uid : int
Return values
boolisAvailable()
public
isAvailable() : bool
Return values
boolisAvailableAccount()
2段階認証を要求すべきアカウントか判定する。
public
isAvailableAccount(int $uid) : bool
復号失敗でも「未登録ではない」ので true を返す。 これにより復号失敗ユーザーがID/パスワードのみで通過するのを防ぐ。
Parameters
- $uid : int
Return values
boolverifyCode()
一時トークンが正しいかチェック
public
verifyCode(string $secret, string $code) : bool
Parameters
- $secret : string
-
秘密鍵
- $code : string
-
一時トークン
Return values
boolgetSecretKey()
秘密鍵を取得する。
private
getSecretKey(int $uid) : TfaSecretKeyResult
取得結果は「成功」「未登録」「復号失敗」の3状態を持つ Result で返す。 例外を投げないので呼び出し側で try/catch する必要はない。
外部からは hasValidSecretKey() / authenticate() / isAvailableAccount() を使用すること。
Parameters
- $uid : int