Android
Users
Androidユーザー登録とメール認証実装ガイド
17 分
ユーザー登録とメール認証の実装方法 はじめに このガイドでは、ユーザー登録機能(サインアップ)にユーザーのメール認証プロセスを設定する方法を学びます。メール認証を含むユーザー登録を使用してアプリを作成します。 parse serverのコア機能 をback4appを通じて行います。 このチュートリアルでは、android studio 4 1 1で作成された基本的なアプリを使用します。 buildtoolsversion=30 0 3 buildtoolsversion=30 0 3 、 compile sdk version = 30 compile sdk version = 30 と targetsdkversion 30 targetsdkversion 30 いつでも、私たちのgithubリポジトリを通じてプロジェクト全体にアクセスできます。 kotlinのサンプルリポジトリ javaのサンプルリポジトリ 目標 back4appでユーザーサインアップ機能のユーザー確認メールプロセスを設定します。 前提条件 このチュートリアルを完了するには、次のものが必要です: android studio back4appに作成され接続された androidアプリ。 android 4 1 (jelly bean) 以上を実行しているデバイス(または 仮想デバイス )。 1 ライブラリのインポート このステップでは、プロジェクトで使用するライブラリをインポートします 次のparseクラスをアクティビティに追加します。 2\ プロジェクトに java 1 8 java 1 8 を追加する必要があります build gradle(module\ app) build gradle(module\ app) これは、このプロジェクトでラムダ関数を頻繁に使用するためです。 1 compileoptions { 2 sourcecompatibility javaversion version 1 8 3 targetcompatibility javaversion version 1 8 4 } 2 メール認証の有効化 次に、back4appダッシュボードでメール認証を有効にしましょう。メール認証ページには2つのプロパティがあります ユーザーのメールを確認することと、メールが確認されていない場合のログインを防ぐことです。 ユーザーのメールを確認するオプションのみを有効にすると、ユーザーは確認メールを受け取りますが、通常通りアプリケーションにログインして使用することができます。「メールが確認されていない場合のログインを防ぐ」オプションも有効にすると、ユーザーはメール認証プロセスを完了した後のみログインできます。 1\ あなたのアプリに行き、 back4appウェブサイト をクリックします サーバー設定 サーバー設定 2\ “確認メール”カードを見つけて、 設定 設定 をクリックします。 3\ ユーザーのメールを確認 ユーザーのメールを確認 をクリックし、 メールが確認されていない場合はログインを防ぐ メールが確認されていない場合はログインを防ぐ 4\ オプション 空のフィールドを埋め、すでに入力されているフィールドを好みに応じて修正します。 5\ 保存 保存 ボタンをクリックします。 3 サインアップ 「parseuser」クラスの2つの基本属性は、ユーザー名とパスワードです。もう1つの特別な属性、すなわちメールアドレスも設定する必要があります。 メール確認によるサインアップを実装するには、ユーザー登録を実装するために使用したのと同じ方法を使用します。しかし、今回はユーザーをログイン画面にリダイレクトするのではなく、ユーザーにログインするためにメールを確認するように求めます。 サインアッププロセスが完了すると、ユーザーはデータベースに保存されます。ユーザーデータは parse dashboard parse dashboard で利用可能になり、mailverifiedブール属性はfalseに設定されます。確認メールプロセスは、ユーザーのメールを確認し、この属性をtrueに設定することで、ユーザーがアプリのすべてのリソースに完全にアクセスできるようにします。 あなたのサインアップ画面はこのようになります 「 signupactivity signupactivity 」を作成するには、次の手順に従ってください 1\ 「 signupactivity signupactivity 」にインポートします。これは、「 ステップ1 2\ 次のコードを使用してユーザー登録を実装します 1 private void signup(string username, string password, string email) { 2 progressdialog show(); 3 parseuser user = new parseuser(); 4 user setusername(username); 5 user setpassword(password); 6 user setemail(email); 7 user signupinbackground(e > { 8 progressdialog dismiss(); 9 if (e == null) { 10 parseuser logout(); 11 showalert("account created successfully!", "please verify your email before login", false); 12 } else { 13 parseuser logout(); 14 showalert("error account creation failed", "account could not be created" + " " + e getmessage(), true); 15 } 16 }); 17 }1 private fun signup(username string, password string, email string) { 2 progressdialog? show() 3 val user = parseuser() 4 user username = username 5 user setpassword(password) 6 user email = email 7 user signupinbackground(signupcallback { 8 progressdialog? dismiss() 9 if (it == null) { 10 parseuser logout(); 11 showalert("account created successfully!","please verify your email before login", false) 12 } else { 13 parseuser logout(); 14 showalert("error account creation failed","account could not be created" + " " + it message,true) 15 } 16 }) 17 } 例のプロジェクトでは、このコードは サインアップ サインアップ ボタンのコールバック内で利用可能です。 また、ユーザー名、パスワード、メールはedit textsを使用して取得されます。 フロントエンドに設定する前に、メールアドレスが有効かどうかを確認するための独自のコードを追加できます。最後に、フィードバックを提供するための独自のコードを追加できます。 サインアップが完了した後、次のメッセージが表示されます… 3\ アラートダイアログを表示するための追加の方法を追加するのは興味深いです。プロセスをよりプロフェッショナルに見せることができます。これがその方法です 1 private void showalert(string title, string message, boolean error) { 2 alertdialog builder builder = new alertdialog builder(signupactivity this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok", (dialog, which) > { 6 dialog cancel(); 7 // don't forget to change the line below with the names of your activities 8 if (!error) { 9 intent intent = new intent(signupactivity this, loginactivity class); 10 intent addflags(intent flag activity clear task | intent flag activity new task); 11 startactivity(intent); 12 } 13 }); 14 alertdialog ok = builder create(); 15 ok show(); 16 }1 private fun showalert(title string, message string, error boolean) { 2 val builder = alertdialog builder(this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok") { dialog, which > 6 dialog cancel() 7 // don't forget to change the line below with the names of your activities 8 if (!error) { 9 val intent = intent(this\@signupactivity, loginactivity class java) 10 intent addflags(intent flag activity clear task or intent flag activity new task) 11 startactivity(intent) 12 } 13 } 14 val ok = builder create() 15 ok show() 16 } サインアップ後、次のようなメールを受け取ります メールを確認した後、プロパティはtrueに設定されます メールを確認した後、プロパティはtrueに設定されます 4 ログイン メール認証を使用してログインを実装するには、基本的な ユーザー登録 を実装するために使用したのと同じ方法を使用します。しかし、今回は、parseがユーザーにさらなるアクセスを許可する前に emailverified ブール値を確認します。 注意 ユーザーは実際には parseuser logininbackground() 関数が呼び出されたときにログインします。しかし、メール認証が完了するまでアプリ全体にアクセスできません。これは、データベースに作成されるセッションオブジェクトのためです。したがって、メールを確認していないユーザーがアプリケーションにアクセスしようとするたびに parseuser logout() を使用することが重要です。そうしないと、 セッション セッション が開いたままになります。 ステップ2で「メールが確認されていない場合はログインを防ぐ」オプションを有効にしている場合、メールを確認せずにログインしようとすると、次のエラーが表示されます。 loginactivity loginactivity を機能させるには、次の手順に従ってください: 1\ ステップ1でインポートした依存関係に加えて、あなたの loginactivity loginactivity にインポートします。 2\ ユーザーログイン機能を実装するには、次のコードを使用してください 1 private void login(string username, string password) { 2 progressdialog show(); 3 parseuser logininbackground(username, password, (parseuser, e) > { 4 progressdialog dismiss(); 5 if (parseuser != null) { 6 showalert("login successful", "welcome, " + username + "!", false); 7 } else { 8 parseuser logout(); 9 showalert("login fail", e getmessage() + " please try again", true); 10 } 11 }); 12 }1 private fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, e parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("login successful", "welcome, $username!", false) 7 } else { 8 parseuser logout() 9 showalert("login fail", e? message + " please try again", true) 10 } 11 } 12 } 例のプロジェクトでは、このコードは ログイン ログイン ボタンのコールバックに配置されています。 また、ユーザー名とパスワードはedit textsを使用して取得されます。 メソッド alertdisplayer alertdisplayer は、あなたが signupactivity signupactivity に追加したものと同じですので、その intent intent 引数を変更するのを忘れないでください。 5 ログアウト ユーザーログアウトを実装するには、以下のコードを使用してください。 logoutactivity logoutactivity 1 progressdialog show(); 2 parseuser logoutinbackground(e > { 3 progressdialog dismiss(); 4 if (e == null) 5 showalert("so, you're going ", "ok bye bye then"); 6 });1 progressdialog!! show() 2 parseuser logoutinbackground { e parseexception? > 3 progressdialog!! dismiss() 4 if (e == null) 5 showalert("so, you're going ", "ok bye bye then") 6 } サンプルプロジェクトでは、このコードは ログアウト ログアウト ボタンのコールバック内で利用可能です。 メソッド alertdisplayer alertdisplayer は、あなたが loginactivity loginactivity と signupactivity signupactivity に追加したものと同じです。 intent intent の引数を変更するのを忘れないでください。 6 アプリをテストする アプリを実行し、いくつかのユーザーを作成し、登録後にログインを試みてください。 1\ アプリを実行し、いくつかのユーザーを作成し、メールを確認せずに登録後にログインを試みて、エラーが表示されるか確認してください。 2\ back4appのウェブサイトにログインします。 https //www back4app com/ 3\ アプリを見つけて、 ダッシュボード ダッシュボード > コア コア > ブラウザ ブラウザ > ユーザー ユーザー をクリックして、作成したユーザーを確認してください! 完了しました! この段階で、parse serverのコア機能を使用して、back4appを通じてメール認証を使用してアプリにログイン、サインアップ、またはログアウトできます!