アプリケーションを実行する際、誰が特定のプロセスを実行しているかを知る必要があることがよくあります。これは、データを正しく分配し、異なるリソースへのアクセスを許可または制限するために必要なことです。この機能は、ほとんどすべてのアプリケーションで使用されています。

AppMasterで現在のユーザを特定する方法

バックエンド側で

AppMasterには、Auth.Get Current Userブロックがあります。Get Current UserブロックがAppMasterにあり、現在のユーザを検出する。これはAuthモジュールによって提供されている。左側のbackendタブにあるbusiness-processesエディタで見つけることができます。

Get Current User block in AppMaster

このブロックは、Userデータベースから、ブロックを実行したユーザーに属するレコードを返します。

重要

Auth:Get Current Userブロックは、認可されたユーザに対してのみ機能します。それ以外の場合、このブロックの結果は未定義となります。

この単純なメソッドで、アプリケーションの現在のユーザーを取得することができます。しかし、このブロックはバックエンドにしか存在しません。 しかし、たいていの場合は、アプリケーションのフロントエンドでユーザーを特定するために必要なものです。

フロントエンド側で

バックエンドのプロセスをフロントエンドから実行するには、 エンドポイントを使用します。これらについては、こちらの記事で詳しく説明しています。

Auth:Get Current User ブロックでは、以下のスクリーンショットで示されているように新しいエンドポイントを作成する必要があります。

Get Current User block

フロントエンドからエンドポイントを呼び出すには、Server Request GET /user/get-current ブロックを使用する必要があります (この例では)。エンドポイントの利用フローは、ウェブアプリケーションとモバイルアプリケーションで同じです。

Server Request GET

現在のユーザを操作する

それでは、Auth.Get Current Userブロックの使用例を見てみましょう。Get Current Userブロックの使用例を見てみましょう。このブロック自体は、Userテーブルからレコードを返します。このレコードから特定のデータを取得するには、Expand Userブロックを使用してこのレコードを展開する必要があります。

Get Current User

出力されたすべてのフィールドは、特定の方法で使用することができます。たとえば、ユーザーアカウントが確認されているかどうかを確認するには、以下の画像のようにブーリアン型のConfirmedフィールドを使用することができます。

AppMaster

パラメータ ウィズ

出力のwithパラメータは、リクエストが関連テーブルを使用して実行されなければならないかどうかを指定します。例えば、User Sessionsテーブルから現在のUserオブジェクトのデータ(現在のユーザーセッションのリスト)を取得するには、関連するテーブル(この場合はUser Sessions)を検索するためにwithフィールドの値を指定する必要があるわけです。

Parameter With

重要!

Withパラメータはクエリを複雑にするため、処理時間が長くなります。デフォルトでは使用されず、必要な場合のみ使用されます。

結論

この記事では、バックエンド側とフロントエンド側で、アプリケーションの現在のユーザーを判断する方法を学びました。この機能は、アプリケーション開発において最も頻繁に使用されるものの1つです。AppMasterを使えば、ビジネスプロセスブロックのいくつかの組み合わせで、これらのリクエストを簡単に実行することができます。