MENU

第6章 ユーザーログイン時の処理を実装してみる

bubbleチュートリアルver1第6章 ユーザーログイン時の処理を実装してみる

目次-全章

第1章 bubbleについて(bubbleの基礎知識からアカウントの作成、アプリ開発まで)
第2章 かんたんなアプリケーションを作成
第3章 ページレイアウト(UIデザイン)を作成
第4章 データベースの設計
第5章 ユーザー登録、ログインを試してみる
第6章 ユーザーログイン時の処理を実装してみる
第7章 ユーザー情報を更新、削除(退会、解約)できるようにしてみる
第8章 メールアドレス認証を実装してみる
第9章 パスワードの再設定、パスワードリセット機能を実装してみる
第10章 ユーザーがツイートできるようにする
第11章 ユーザーのフォロー機能、タイムライン表示機能をつくってみる
まとめ
目次

6.1 ログインページからログイン処理を実装

第5章で新規登録を作成したので、その後のログイン、ログアウト処理を実装していきます。

第5章1ではまずログイン処理を実装します。

ログイン処理を追加

ログインボタンからワークフローを開始する

Button Loginのプロパティエディタで「Start/Edit workflow」をクリックします。

図6.1.1 Start/Edit workflowへ

アクションは Account > Log the user in を選択します。

図6.1.2 Account > Log the user in を選択

Email:Input Emailの値、Passeword:Input Passwordの値を設定します。

図6.1.3 Log the user inを設定

Stay logged in は no にします。

図6.1.4 Log the user inの設定

Stay logged in は yes にすると基本的にログイン状態を保持し、何時間経っても自動的にログアウトされません(ブラウザの設定でクッキーの削除を行った場合はログアウトされます)。

Stay logged in を no にすると、24時間後には自動的にログアウトされます。

特に要望がない場合は、セキュリティ保護のために Stay logged in は no にしておきましょう。

ログイン後にhomeに遷移する

新規登録と同様に、ログイン後、ページ遷移のアクションでhomeページに遷移させます。

図6.1.5 Destinationをhomeへ設定

必須チェックを追加する

Input Email、Input Passwordに対してプロパティエディタで「This input should not be empty」にチェックを入れます。

図6.1.6 This input should not be emptyにチェック

Button Loginのプロパティエディタで「This element isnt clickable」にチェックを入れます。

図6.1.7 This element isn’t clickableにチェック

Conditionalに、条件を「メールアドレスとパスワードが空でないとき」と設定し、クリック可能にするため This element isn’t clickable のチェックを外します。

図6.1.8 Button Loginの設定

リンクを設定する

Link「パスワードを忘れた場合はこちら」のリンク先を設定します。

パスワードリセットページに遷移させたいので「password_reset」を選択します。

図6.1.9 Destination pageをpassword_resetに設定

Link「新規登録はこちら」は遷移先をsignupに設定します。

図6.1.10 Destination psgeをsignupに設定

プレビューで確認する

loginページを表示した状態でプレビューをクリックします。

図6.1.11 loginページのpreview画面

第5章で登録したメールアドレスとパスワードを入力し、ログインするをクリックします。

ログイン後、homeページに遷移することが確認できます。

図6.1.12 homeページへ移動

6.2 ログイン時のみタイムライン、マイページに接続できるようにバリデーション

ログイン時のページを確認

これまで作成してきた設定のままだと、ログインしていないときにもhomeやmypageが表示される形になっています。そのため、ログイン時に表示するページとログインしていない時に表示するページを切り分けし、設定を行います。

ログイン時、非ログイン時のページを切り分ける

ログインページ、新規登録ページ、パスワードリセットページは基本的に非ログイン時にアクセスするページです。それ以外のページはログインをしている時に表示するページです。

非ログイン時のページログイン時のみ表示するページ
・login・signup・password_reset・email_authentication・home・mypage・users
表6.2.1 対応ページ一覧

email_authenticationについては、現在のユーザーのemail confirmedの値をチェックするため、ログイン時のみ表示するページとなります。

なお、reset_pwページはパスワードリセットURLからアクセスするとログイン状態になっています。このページに自動的にログアウトする設定をしてしまうとパスワードリセットができなくなるため、基本的にreset_pwにはログイン・ログアウトの条件を設定しません。

非ログイン時のページにログインチェックを追加する

非ログイン時のページにアクセスした場合、ログイン済みかどうかを確認し、ログイン済みの場合はhomeに遷移するワークフローを追加します。

まずビジュアルエディタでloginページを表示し、workflowタブに移動します。

図6.2.1 workflowタブへ

「Click here to add an event…」をクリックするとトリガーの候補が表示されるため、「User is logged in」を選択します。

図6.2.2 User is logged inを選択

アクションは「Go to page…」でhomeを選択します。

図6.2.3 Destinationをhomeに設定

ワークフローをコピー&ペーストする

同じ設定をsignup、password_resetにも設定します。

同じようにトリガー、ワークフローを設定しても問題ありませんが、ワークフローもコピー&ペーストが可能です。

コピーしたいワークフローのトリガー上で右クリックして「Copy」を選択します。

図6.2.4 User is loger in のCopy

signupのworkflowタブに移動し、「Click here to add an event…」上で右クリックし「Paste」をクリックします。

図6.2.5 Click here to add an event…上でPaste

ワークフローがコピーされます。

図6.2.6 Copy&Paste後の状態

同様に password_reset にも同じワークフローをコピー&ペーストします。

ログイン時のページにログインチェックを追加する

ログイン時のページにアクセスした場合、ログイン済みかどうかを確認し、未ログインの場合はloginに遷移するワークフローを追加します。

ここでページ全てに設定をせず、共通する「Header」に設定するようにすると、少ない設定で済みます。

Headerのworkflowタブを表示します。

「Click here to add and event…」をクリックし、トリガーに「User is logged out」を選択します。

図6.2.7 Click here to add and event…>User is logged outを選択

アクションは「Go to page…」を選択し、loginを選択します。

図6.2.8 Destinationをloginに設定

これで、ページにHeaderが配置されているページ全てに対して、未ログインユーザーがアクセスした場合、ログインページに遷移する設定ができました。

email_authenticationについては、Headerが存在しないので、設定したワークフローをコピー&ペーストします。

reset_pwに条件を設定する

reset_pwページはパスワードリセットメールに記載されるURLにアクセスした時に表示されるページです。パスワードリセットメールからアクセスした場合、アクセス先のURLは以下のようになっています。

https://(アプリ名).bubbleapps.io/reset_pw?reset=(文字列)

文字列の部分は、パスワードリセットのたびに新しく生成されます。一度利用されたURLに再度アクセスした場合、URLが無効である旨自動的にアラートが表示されます。

ただし、直接URL https://(アプリ名).bubbleapps.io/reset_pw をブラウザのアドレスバーに入力するとアクセスできてしまいますので、パラメータが存在しない場合、ログインページに遷移するようワークフローを設定します。

トリガーは「Page is loaded」にし、Only whenに「Get data from page URL」を選択します。

図6.2.9 Page is loadedの設定

Parameter nameを「reset」にします。

図6.2.10 Parameter nameをresetに設定

その後「is empty」を選択します。これで、トリガーの内容は「ページを読み込んだとき、URLパラメータにresetが存在しないとき」となります。

図6.2.11 is emptyを選択

アクションは「Go to page…」で遷移先をloginにします。

図6.2.12 Destinationをloginに設定

これで、直接URLを入力してアクセスした場合は、ログインページに遷移する設定となります。

indexページの設定

bubbleでアプリケーションを作成すると自動で作成されるindexページは削除することができません。一般的にはログインページにしたり、ランディングページにすることがありますが、今回はloginページが別に存在するので、 indexにアクセスした場合はリダイレクトするように設定します。

まず、indexページに設定されているエレメントは全て削除します。

図6.2.13 indexページの状態

エレメントを削除すると、エレメントに設定していたワークフローはすべて削除されます。

図6.2.14 ワークフローの状態

ログインしている場合homeページへ遷移、ログアウトしている場合loginページへ遷移、という設定を追加します。

図6.2.15 Destinationをhomeに設定
図6.2.16 ワークフローの状態

6.3 マイページにログアウト処理を実装

ログアウト処理を実装

マイページの表示を設定

マイページに自分の情報を表示させるために、Body、Group User、Group UserInfoにCurrent Userを設定します。

図6.3.1 Bodyの設定

Group User、Group UserInfoは親エレメントの値を引き継がせるため、Parent group’s Userを設定します。

図6.3.2 Group Userの設定
図6.3.3 Group UserInfoの設定

ユーザーの画像を表示させるには、Imageエレメントに Parent group’s User’s imageとし、Userテーブルのimageカラムを指定します。

図6.3.4 User Imageの設定

このままだと画像が登録されていないときに表示されないため、Conditionalタブで「Userテーブルのimageカラムに画像が存在しないとき」固定の画像を表示するように設定します。

以下の画像をダウンロードしておいてください。

https://drive.google.com/file/d/1j_vLsKw2kUbuGFzp6NHEMb3WmIOR7Q2H/view?usp=sharing

Conditionalタブで Parent group’s User’s image is empty となるように選択します。プロパティは Image Source を選択し、Static imageにダウンロードした画像を設定します。

図6.3.5 User ImageのConditionalの設定

これで、ユーザー画像が登録されていないときは設定した画像が表示されるようになります。

続いて、ユーザー名と投稿数の表示設定をします。

Text UserNameエレメントでは、Current User’s name を表示させたいので、親エレメントのユーザー情報のnameカラムを設定します。

図6.3.6 Text UserNameの設定

ユーザーの投稿数を取得するには、Search for Tweetを選択し、Tweetテーブルを検索します。検索条件はCreated ByをCurrent Userとします。これで、Tweetテーブルの自分(Current User)が作成したデータを取得できます。続けて:countを選択することで、検索した件数が取得できます。

図6.3.7 Text PostNumberの設定

ログアウト処理を実装する

マイページの基本情報が表示できたところで、ログアウト処理を実装します。

Button logout(ログアウト)ボタンからワークフローを開始し、アクションはAccount > Log the user outを選択します。

図6.3.8 Account > Log the user outを選択

これだけでログアウトは完了ですが、マイページに止まってしまうため、Go to page…アクションでloginページに遷移させます。

図6.3.9 Destinationをloginに設定

プレビューして確認する

それでは一連の流れを確認しましょう。

ログインした状態でマイページを表示します。ログアウトしていた場合は、ログインして、https://(アプリ名).bubbleapps.io/mypage にアクセスしてください。

図6.3.10 mypageのpreview画面

ログアウトボタンをクリックして、ログイン画面に遷移したら成功です。

最後に

第6章では、ログイン、ログアウト処理について学びました。

ログインやログアウトについては、bubbleで用意されたアクションが存在するためすぐに設定が可能です。

ただし第6章2で設定したように、アプリケーションで用意する全てのページに対して、ログインしていないと表示できないページかどうか漏れなく確認するようにしましょう。

実際に働く社員とカジュアル面談しませんか?

【毎週金曜日開催中】カジュアル面談しませんか?


参加はこちら!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私たち株式会社ファンリピートは、ITを通じてお客様の課題解決を行うスタートアップベンチャーです。ノーコード・ローコードを用いたDX支援事業を主軸に、スピード感を持ってお客様のご要望にお応えしています。

2019年の創業から、出版業界・広告業界をはじめ、幅広い業界のデジタル施策を支援。財務管理・顧客管理などの基幹・業務システムから、新規Webサービスなど開発前検証フェーズのシステム導入支援まで、ワンストップでサポートを実施しています。この先も本質的なご提案を通じて、お客様の課題を解決し続けます。

コメント

コメントする

目次