私の質問
このアプリにDeviseを使用するか、他の認証ソリューションを使用するか、独自の認証ソリューションを使用する必要がありますか?
私が構築しているもの
店舗の従業員がログインして仕事中にリアルタイムの情報を記録するためのキオスクとして使用されるアプリを構築しています。キオスクを共有しながら複数の従業員が同時に作業している可能性があるため、ユーザーが簡単に交換して認証できるようにする必要があります。(レストランの販売時点管理 (POS) キオスクを考えてみてください。サーバーが立ち上がって 4 桁の PIN を入力し、注文などを非常に迅速かつ簡単に行うことができます。) また、いくつかの管理層が必要であり、複数の機能をサポートする必要があります。 -テナント (これをどのように行うかはまだ決めていませんが、マルチテナントを使用します)、多層の「管理者」レイヤーも用意します (店長、複数の店舗を管理するゼネラルマネージャー向け) 、および私のようなシステム管理者)。
私が予想する 4 つのユーザー層のまとめ
- 店舗従業員- 「ユーザー」。おそらく、キオスク (iPad または PC) を使用して作業情報を記録する時間給従業員です。ユーザーは、リストで自分の名前をタップまたはクリックし、4 桁の PIN を入力することで、すばやく交換できます (これを行う方法はまだわかりません。これはおそらく将来の SO の質問の材料になります)。
- ストア マネージャー * - ストアのレポートを表示し、ストア固有のその他のメンテナンスを行うことができる「管理者」。
- ゼネラル マネージャー * - レポートを表示したり、メンテナンスを行ったり、複数の店舗のその他の管理活動を行うことができる「管理者」。
スーパー ユーザー * - アプリ内のデータを操作し、すべてのデータを表示し、レポートを実行できる「管理者」 (これは基本的に「神モード」です)。
*すべての管理者ロールは、標準のユーザー名/電子メール アドレス タイプの認証を使用して、管理者ログイン ページからログインします。
また、新しいゼネラルマネージャーが会社にサインアップしてアプリを使用し、会社の店舗を追加できるように、これを設定する予定です. ゼネラル マネージャーとストア マネージャーは、店舗のユーザー (従業員) を追加することもできます。(そのため、従業員が自分でサインアップすることはありません。ジェネラル/ストア マネージャーが従業員のアカウントを作成して維持します。)
アプリを使用するためにサインアップする新しい会社のサインアップ/認証ストーリー
- ゼネラル マネージャーはアプリの Web サイトにアクセスし、会社にサインアップします。
- ゼネラルマネージャーが支払い情報を提供します。(これで「会社」アカウントと「部長」アカウントの設定は完了です。)
- ゼネラル マネージャーは、各店舗 (名前、場所など) を設定します。これにより、GM が最初の管理者である「ストア」インスタンスが作成されます。)
- ゼネラル マネージャーは、各ストアの「ストア マネージャー」アカウントを作成します。(これで、最初の「店長」アカウントの設定は完了です。)
- 店長は、ログインして各店舗のデータ (従業員が最終的にキオスクから情報を記録するもの) を設定し、店舗の従業員のユーザー アカウントを作成できるようになりました。(これで各店舗の「ユーザー」アカウントの初期設定は完了です。)
- 従業員は、PIN を使用してキオスクからログインできるようになりました。
私が今持っているもの
今、私は Store Employee と Super User の役割を設定しています。このすばらしい記事を使用して設定しました: Using Devise for Admin Accounts . ですから、私はこれに非常に早い時期に取り組んでいます。この時点では、ほぼ完全に概念的なものです。Devise を使用するという最初の決定から後戻りする場合は、今がその時です。私はアプリの基本機能のほとんどを構築し、現在は Web デザイン (ルック アンド フィール) を行っており、認証/サインアップ レイヤーの構築に取り組んでいます。次に、マルチテナンシー レイヤーを追加します。