Midari Create > webアプリケーション製品 > Wakarana > サンプルコード >

【Wakarana】メールアドレスでもログイン可能なログインフォーム

Wakaranaで利用できる、TOTPによる2要素認証に対応したメールアドレスでもログイン可能な1段階ログインフォームのサンプルコードです。

wakarana::login_with_email_address関数は、wakarana::login関数の第一引数をユーザーIDからメールアドレスに置き換えたものであり、それ以外の仕様についてはwakarana::login関数と同様です。

アプリケーション全体で2要素認証を使用しない場合は、以下のPIN入力欄、及び、wakarana::login関数とwakarana::login_with_email_address関数の第三引数を省略することが可能です。

sample_1.html

<form action="sample_2.php" method="post">
    ID またはメールアドレス<input type="text" name="user_id"><br>
    パスワード <input type="text" name="password"><br>
    PIN <input type="text" name="totp_pin" placeholder="2要素認証を使用している場合のみ入力"><br>
    <button type="submit">送信</button>
</form>

sample_2.php

<?php
include "wakarana/main.php";

$wakarana = new wakarana();

// IDにアットマークが含まれていた場合はメールアドレスと判定して処理を振り分け
if (strpos($_POST["user_id"], "@") === FALSE) {
    $user = $wakarana->login($_POST["user_id"], $_POST["password"], $_POST["totp_pin"]);
} else {
    $user = $wakarana->login_with_email_address($_POST["user_id"], $_POST["password"], $_POST["totp_pin"]);
}

if (is_object($user)) {
    print $user->get_name()."としてログインしました";
} else {
    print "ユーザー名またはパスワード、PINが違います";
}