メールアドレスと電話番号の認証
メールアドレスと電話番号は、Kii Cloud が提供する認証機能によって正しい値が設定されているか確認できます。この認証は、ユーザーが他人のメールアドレス/電話番号や不正なメールアドレス/電話番号でユーザー作成を行うことを防止するための機能です。
認証機能を使用するかどうかは、開発者ポータルから設定します。認証機能の設定をオンにすると、以下のようになります。
- 認証が完了するまで、メールアドレスや電話番号によるログインが成功しません。
- 認証が完了するまで、メールアドレスや電話番号での ユーザー検索 ができません。
Kii Cloud から送信されたメールや SMS に含まれるリンクをエンドユーザーがクリックして認証処理が完了すると、メールアドレスや電話番号によるログインが可能になります。
認証がオンの場合、同じメールアドレスや電話番号のユーザーは Kii Cloud 内で複数存在できますが、認証に使用できるユーザーは 1 人だけです。メールアドレスの場合、初めに確認メールのリンクをクリックしたユーザーだけが、そのメールアドレスでログインできます。その他のユーザーのメールアドレスはログインに使用されません。電話番号も同様です。
メールアドレスや電話番号のみのログイン
メールアドレスや電話番号による認証機能がオンになっている状態では、ユーザー名などの認証を必要としないログイン手段を併用する必要があります。
以下に、認証機能の設定と、そのとき必要なログイン手段を示します。
メールアドレス認証 | 電話番号認証 | 必要なログイン手段 |
---|---|---|
オン | オフ | メールアドレスに加え、ユーザー名または電話番号の同時指定が必要 |
オフ | オン | 電話番号に加え、ユーザー名またはメールアドレスの同時指定が必要 |
オン | オン | メールアドレスか電話番号(または、メールアドレスと電話番号の両方)に加え、ユーザー名の同時指定が必要 |
この場合のログイン方法は、こちらの表 の注釈をご覧ください。
Kii Cloud では、認証のメールや SMS メッセージを送信する際に、そのユーザーがログイン状態である必要があります。そのため、ユーザー名などの認証を必要としないログイン情報を同時に指定し、いつでもログインできる状態にしておく必要があります。ユーザーインターフェイス上、これを回避したい場合、下記の「認証済み情報だけでのログイン」を参考にしてください。
認証済み情報だけでのログイン
認証済みのメールアドレスまたは電話番号だけでログインさせたい場合は、実装上の工夫が必要です。
単純にユーザーを作成すると、メールアドレスや電話番号の認証が完了する前に、ログインができます。たとえば、メールアドレス認証がオンの状態で、ユーザーが入力したメールアドレスとユーザー名を使ってユーザーを作成すると、確認メールによる認証を完了する前に、ユーザー名を使ってログインできます。
認証済みのメールアドレスだけでログインさせたい場合、以下の方法で実現できます。
仮ユーザー(Pseudo User)を使う方法
仮ユーザーを応用すると、メールアドレス以外にログイン方法を持たないユーザーを作成することができます。仮ユーザーの詳細は 仮ユーザー(Pseudo User) をご覧ください。
- 一旦、仮ユーザーとしてユーザーを作成(ユーザー名、パスワード、メールアドレスはすべてなし)。
- 仮ユーザーの作成直後にメールアドレスとパスワードだけを指定して「通常のユーザーへの変更」を実施。
この手順でユーザーを作成すると、認証完了後のメールアドレスでしかログインできません。
エンドユーザーが手順 2 でメールアドレスの入力を間違えた場合や、確認メールを再送したい場合、次のいずれかの対応を取れます。
- もう一度、手順 1 からユーザーを作成し直します。Kii Cloud には未使用のユーザーが残ることになりますが、サービスへの影響はありません(上記のとおり、初めに認証を完了したユーザーだけがそのメールアドレスを使用できます)。
- 仮ユーザーでのログイン状態が継続していることを利用して、メールアドレスの変更や認証メールの再送の API をモバイルアプリから呼び出します。
なお、電話番号だけでログインさせたい場合、SMS に含まれる確認コードを送信する処理でも仮ユーザーのログイン状態が必要です。万一、仮ユーザーのログイン状態が失われた場合、もう一度手順 1 からユーザーを作成し直す必要があります。
自動生成したユーザー名を使用する方法
ユーザー作成時に、ユーザー名を UUID などで自動生成することで、実質上メールアドレスだけでログインさせることができます。
- UUID やランダムな文字列によってユーザー名を自動生成。
- 生成したユーザー名、および、ユーザーが入力したメールアドレスとパスワードによってユーザーを作成。
この手順でユーザーを作成すると、エンドユーザーはユーザー名を知る方法がないため、確認後のメールアドレスを使ったログインしかできません。
なお、万一、自動生成されたユーザー名と同じユーザーがすでに存在した場合は登録エラーとなります。この場合、ユーザー名をもう一度生成し直す必要があります。乱数を使用する場合、シードが適切に設定されていないと、すべてのデバイスで同じユーザー名が生成されるため、ご注意ください。
上記の仮ユーザーを使う場合と同様に、メールアドレスの変更や確認メールの再送、電話番号認証での確認コードの送信処理には初めにログインしたユーザーのログイン状態が必要です。
メールアドレスや電話番号の変更
メールアドレスや電話番号は API によって変更することができます。
認証機能の設定がオンの状態でこれらを変更すると、エンドユーザーはユーザー登録時と同様に、確認のメールや SMS によって認証を行う必要があります。
API で新しいメールアドレスや電話番号を指定した後は、メールや SMS によって認証が完了するまでの間、変更前の情報を使ってログインできます。変更時、ユーザーが新しいメールアドレスや電話番号を誤って入力した場合、変更前の情報でログインし直すことで、正しい情報を再入力できます。確認メールや SMS で認証した瞬間から、新しい情報でログインできるようになります。
なお、再入力以外にも、送信済みの確認メールや SMS をエンドユーザーに再送する API を用意しています。必要に応じてモバイルアプリの機能として実装してください。