Wakarana関数マニュアル

バージョン20.12-1用

クラス wakarana (main.phpに収録)

例: $wakarana = new wakarana();

wakarana::get_user_info($user_id)

ユーザーIDで指定したユーザーの各種情報を取得します。

$user_id : ユーザーID

返り値 : 成功した場合は、ユーザーの各種情報を連想配列で返します。失敗した場合はFALSEを返します。

wakarana::mail_exists($mail_address)

あるメールアドレスを使用しているユーザーがいるかを調べます。

$mail_address : 調べるメールアドレス

返り値 : 指定したメールアドレスを登録しているユーザーがいればそのユーザーID、そうでない場合はFALSE、エラーの場合はNULLを返します。

wakarana::add_user($user_id, $password, $user_name, $mail_address, $is_master, $status)

新しいユーザーを追加します。

$user_id : 追加するユーザーのID
$password : 追加するユーザーのパスワード
$user_name : 追加するユーザーのハンドルネーム。省略した場合はハンドルネーム「匿名」になります。
$mail_address : 追加するユーザーのメールアドレス。省略可。
$is_master : 管理者の場合はTRUE、一般ユーザーの場合はFALSEを指定してください。省略した場合は一般ユーザーになります。
$status : WAKARANA_STATUS_DISABLEを指定すると一時的に使用できないユーザーとして作成することができます。省略可。

返り値 : 成功した場合はユーザーIDを返します。失敗した場合はFALSEを返します。

wakarana::change_user_data($user_id, $password, $user_name, $mail_address, $is_master, $status)

指定したIDのユーザーの各種情報を変更します。

引数については「add_user」と同様です。 : 年を表す4桁の数値
$month : 月を表す2桁の数値

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::enable_2_factor_auth($user_id, $totp_key)

指定したIDのユーザーのログイン時に2段階認証を要求するように設定します。

$user_id : ユーザーID
$totp_key : TOTP生成鍵。省略したときは自動で生成されます。

返り値 : 成功した場合はTOTP生成鍵、失敗した場合はFALSEを返します。

wakarana::disable_2_factor_auth($user_id)

指定したIDのユーザーのログイン時に2段階認証を要求しないように設定します。

$user_id : ユーザーID

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::delete_user($user_id)

ユーザーを削除します。

$user_id : 削除するユーザーのID

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::get_all_users($start, $limit)

全ユーザーの一覧を登録日時の古い順に返します。
$start : 何番目のユーザーから取得するか。(初期値0)
$limit : 何件まで取得するか。(初期値100)

返り値 : 成功した場合は、ユーザーIDを配列で返します。失敗した場合はFALSEを返します。

wakarana::add_privilege($user_id, $permission_id)

ユーザーに権限を付与します。
管理者ユーザーにも権限を付与することはできますが、権限を付与しなくても、管理者ユーザーはデフォルトで全ての権限を持っているものとして扱われます。
$user_id : ユーザーID
$permission_id : 与える権限の名前

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::check_privilege($user_id, $permission_id, $always_allow_master)

ユーザーに権限があるかを確認します。

$user_id : ユーザーID
$permission_id : そのユーザーが持っているかどうかを確認する権限の名前
$always_allow_master : FALSEを指定した場合、管理者ユーザーでも権限を持っていない場合は権限なしと判定します。省略時はTRUEとして扱われます。

返り値 : 指定したユーザーが指定した権限を持っていた場合はTRUE、それ以外の場合はFALSEを返します。

wakarana::delete_privilege()

ユーザーが持つ権限を削除します。

$user_id : ユーザーID。NULLを指定すると、全てのユーザーから権限を削除しますが、$permission_idもNULLの場合はエラーとなります。
$permission_id : 権限の名前。NULLまたは省略した場合、管理者以外の全ての権限を削除します。

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::delete_old_login_tokens()

期限切れのログイントークンを削除することで無駄なデータを削減します。

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::delete_all_tokens($user_id)

指定したユーザーのログイントークンを全て削除します。

$user_id : ユーザーID

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::get_attempt_logs($user_id)

指定したユーザーのログイン試行履歴を取得します。

$user_id : ユーザーID

返り値 : 成功した場合はそのユーザーの各試行履歴が格納された連想配列(user_id(ユーザーID)、succeeded(正しいパスワードを入力したか否か) 、attempt_datetime(試行日時))を、配列に入れて返します。失敗した場合はFALSEを返します。

wakarana::delete_attempt_logs($user_id)

指定したユーザーのログイン試行履歴を全て削除します。

$user_id : ユーザーID

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::update_last_access($user_id)

現在の時刻を指定したユーザーの最終アクセス日時として記録します。
ログイン処理とログアウト処理では、この操作は自動的に実行されるため不要です。

$user_id : ユーザーID

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::check_password($user_id, $password)

ユーザーIDとそのユーザーのパスワードが正しいかどうかを確認します。

$user_id : ユーザーID
$password : パスワード

返り値 : 正しいパスワードだった場合はTRUE、それ以外の場合はFALSEを返します。

wakarana::login($user_id, $password, $totp_pin)

ユーザーIDとパスワードを照合し、正しければログイントークンを生成してクライアント端末に送信します。
この関数はHTTPヘッダーの出力を伴うため、この関数より前にのHTMLやHTTPヘッダー以外の何らかの文字が出力されていた場合はエラーとなります。

$user_id : ユーザーID
$password : パスワード
$totp_pin : 6桁のTOTPコード。2要素認証を使用しない場合と2要素認証の入力画面を分ける場合は省略。

返り値 : ログインが完了した場合はTRUE、2段階認証の対象ユーザーだった場合は仮トークン、それ以外の場合はFALSEを返します。

wakarana::totp_login($tmp_token, $totp_pin)

ユーザーIDとパスワードが照合済みのユーザーに対して、TOTPによる第2段階の認証を行います。
この関数はHTTPヘッダーの出力を伴うため、この関数より前にのHTMLやHTTPヘッダー以外の何らかの文字が出力されていた場合はエラーとなります。

tmp_token : wakarana::loginにより発行される仮トークン
$totp_pin : 6桁のTOTPコード

返り値 : ログインが完了した場合はTRUE、それ以外の場合はFALSEを返します。

wakarana::check($permission_id)

クライアント端末のcookieを参照し、正しくログインしているかどうかを照合します。

$permission_id : 権限名。省略可。指定した場合、ユーザーがその権限を持っていなければログインしていない場合と同様に扱います。

返り値 : 正しいログイントークンでログインしていた場合はそのトークンに対応するユーザーID、それ以外の場合はFALSEを返します。

wakarana::logout()

接続中のクライアント端末が持つログイントークンをクライアント端末とデータベースの双方から削除し、ログアウト状態にします。
この関数はHTTPヘッダーの出力を伴うため、この関数より前にのHTMLやHTTPヘッダー以外の何らかの文字が出力されていた場合はエラーとなります。

返り値 : 成功した場合はTRUE、失敗した場合はFALSEを返します。

wakarana::create_one_time_token($user_id)

指定したユーザーが利用可能なワンタイムトークンを発行します。

$user_id : ユーザーID

返り値 : 成功した場合はワンタイムトークンを、エラーの場合はFALSEを返します。

wakarana::check_one_time_token($user_id, $token)

ワンタイムトークンを照合します。照合が終わったワンタイムトークンは自動的にデータベースから削除されます。

$user_id : ユーザーID
$token : ワンタイムトークン

返り値 : 正しいワンタイムトークンだった場合はTRUEを、それ以外の場合はFALSEを返します。

wakarana::totp_compare($totp_key, $totp_pin)

TOTPの規格に基づいて生成鍵とワンタイムコードを照合します。

$totp_key/b> : TOTP生成鍵
$totp_pin : 6桁のTOTPコード

返り値 : 生成鍵に対して正しいTOTPコードだった場合はTRUEを、それ以外の場合はFALSEを返します。

wakarana::create_totp_key()

ランダムなTOTP生成鍵を作成します。この関数は作成したTOTP生成鍵をデータベースに保存しません。

返り値 : 16桁のTOTP生成鍵

クラス wakarana_config (config.phpに収録)

例: $config = new wakarana_config();

(執筆中)