Adaloで管理者ログイン機能・管理者画面を実装する

最新の更新日
Mar 17, 2022 11:41 AM
Target Keywords
vol.

Adaloで通常のユーザーとは別に、管理者専用の画面を作りたい場合の方法を共有します。

ログイン画面は共通にして、管理者ユーザーによるログインがあった場合に、管理者のみ別の画面へと遷移させるようにしたい場合など。

この構成を別名で「マルチサイドアプリ」、「マルチサイドログイン」とも言うようですね。

image

英語ですが、全体の流れの確認としては下の動画が参考になりました。

下記リンクはこの動画を含めAdaloフォーラムに投稿されたチュートリアルです。シンプルで分かりやすい方法。

ユーザーテーブルに「管理者」のカラムをboolean属性(True/Falseのチェックマーク)で追加

ログイン直後に管理者属性をチェックし転送する「分類器」画面を作成

URL共有で他ユーザーから閲覧されないようセキュリティ対策

ネイティブアプリ化をしていないSPAで公開する場合、ログイン後の管理者画面URLを知られてしまうと、一般ユーザーにおいても管理者画面へそのままアクセスされてしまうというセキュリティ上の危険があります。

これを避けるため、ログイン後の管理者画面のコンポーネント全てを、「管理者ユーザー以外は不可視」という状態にします。

コンポーネントをグループ化して、グループごと「管理者ユーザー以外は不可視」の設定にしましょう。

データベースを共有し、管理者用アプリ自体を別個に作ることも可能

Adaloで新しいアプリを作成するときに「既存のデータベースを利用する」を選択すれば、データベースは同一のものを利用して、フロント画面は別個のアプリとして開発が可能。

単に管理者という括りではなく、異なる属性のユーザーグループに異なるフロント画面を見せたい、という場合にはこの「マルチサイドアプリ」として構築するほうが良さそうです。

たとえばUberはユーザー用とドライバー用でアプリが別個になっています。

具体的な実装方法は、ユーザー登録時にユーザー登録or管理者登録として2つのサインアップ画面を設け、ユーザー登録時点からユーザーを切り分ける方法をとります。このとき管理者として登録した人には管理者属性を付与。

その後、別個のAdaloアプリを作成し、既存のデータベースを利用するようにします。

既存のAppからフロント画面を複製してデータベースを共有したい場合は下記から:

Settings > Copy / Delete > Copy App

image
image

上記、Adaloの週次チュートリアル”TwoMinuteTuesday”のページで具体的に動画で説明されていました。

下記はAdaloでのマルチサイドアプリ開発についての詳細なテキストドキュメントです。