アプリケーションを実行する際、誰が特定のプロセスを実行しているかを知る必要があることがよくあります。これは、データを正しく分配し、異なるリソースへのアクセスを許可または制限するために必要なことです。この機能は、ほとんどすべてのアプリケーションで使用されています。
AppMasterで現在のユーザを特定する方法
バックエンド側で
AppMasterには、Auth.Get Current Userブロックがあります。Get Current UserブロックがAppMasterにあり、現在のユーザを検出する。これはAuthモジュールによって提供されている。左側のbackendタブにあるbusiness-processesエディタで見つけることができます。
このブロックは、Userデータベースから、ブロックを実行したユーザーに属するレコードを返します。
重要
Auth:Get Current Userブロックは、認可されたユーザに対してのみ機能します。それ以外の場合、このブロックの結果は未定義となります。
この単純なメソッドで、アプリケーションの現在のユーザーを取得することができます。しかし、このブロックはバックエンドにしか存在しません。 しかし、たいていの場合は、アプリケーションのフロントエンドでユーザーを特定するために必要なものです。
フロントエンド側で
バックエンドのプロセスをフロントエンドから実行するには、 エンドポイントを使用します。これらについては、こちらの記事で詳しく説明しています。
Auth:Get Current User ブロックでは、以下のスクリーンショットで示されているように新しいエンドポイントを作成する必要があります。
フロントエンドからエンドポイントを呼び出すには、Server Request GET /user/get-current ブロックを使用する必要があります (この例では)。エンドポイントの利用フローは、ウェブアプリケーションとモバイルアプリケーションで同じです。
現在のユーザを操作する
それでは、Auth.Get Current Userブロックの使用例を見てみましょう。Get Current Userブロックの使用例を見てみましょう。このブロック自体は、Userテーブルからレコードを返します。このレコードから特定のデータを取得するには、Expand Userブロックを使用してこのレコードを展開する必要があります。
出力されたすべてのフィールドは、特定の方法で使用することができます。たとえば、ユーザーアカウントが確認されているかどうかを確認するには、以下の画像のようにブーリアン型のConfirmedフィールドを使用することができます。
パラメータ ウィズ
出力のwithパラメータは、リクエストが関連テーブルを使用して実行されなければならないかどうかを指定します。例えば、User Sessionsテーブルから現在のUserオブジェクトのデータ(現在のユーザーセッションのリスト)を取得するには、関連するテーブル(この場合はUser Sessions)を検索するためにwithフィールドの値を指定する必要があるわけです。
重要!
Withパラメータはクエリを複雑にするため、処理時間が長くなります。デフォルトでは使用されず、必要な場合のみ使用されます。
結論
この記事では、バックエンド側とフロントエンド側で、アプリケーションの現在のユーザーを判断する方法を学びました。この機能は、アプリケーション開発において最も頻繁に使用されるものの1つです。AppMasterを使えば、ビジネスプロセスブロックのいくつかの組み合わせで、これらのリクエストを簡単に実行することができます。