0

この質問をする簡単な方法は次のとおりです。API のサインアップ メソッドに指定されたパラメーターを使用して、新しく作成されたユーザーの役割を条件付きで設定できるかどうかは誰にもわかりませんか?

次に、より詳細な質問をします。

バックとセキュリティの役割を割り当てたい、いくつかの異なるタイプのユーザーを持つアプリに取り組んでいます。Backand サインアップ メソッドに提供されるパラメーターに基づいてユーザー ロールを条件付きで設定しようとしていますが、作成時に発生するセキュリティ アクションを定義するときに、パラメーター オブジェクトに送信される値を読み取る方法がわかりません。

クライアントの angular サインアップ コントローラーでは、リクエストのルートに基づいて isManager ロールが設定されます。

if (isManager) {
  params = {
    manager: isManager,
  };
}
return this.Backand.signup(firstName, lastName, email, password, confirmPassword, params)
  .then((result) => {...

この呼び出しが機能し、新しいユーザー オブジェクトが作成されます。このメモと次の例に従って create メソッドが呼び出されると、ユーザー オブジェクトの役割をマネージャーに変更することもできます。

注: セキュリティ上の理由から、サインアップ API からロールを変更することはできません。これは、管理者が [セキュリティと認証] -> [登録済みユーザー] ページで適切な設定を変更するか、カスタムのサーバー側を作成することによってのみ行うことができます。管理者権限でのアクション。次のコードを使用して、Before Create トリガーで新しいセキュリティ アクションを作成します (これにより、ロールが「Public」に更新されます)。

ここにあります。http://docs.backand.com/en/latest/apidocs/security/#sign-up

そこの例と同様のロジックを追加しましたが、提供されたパラメーターに基づいて条件付きロジックを追加できるかどうか疑問に思っています。これが私の試みです。

function backandCallback(userInput, dbRow, parameters, userProfile) {
// write your code here
if (parameters && parameters.manager) {
    userInput.Role = 'Manager';
}

return {};
}

ただし、これは機能しません。console.log を追加しようとすると、パラメーター オブジェクトがどのように見えるかが示されますが、そのログ メッセージは生成されません。もちろん、アプリケーションをデバッグ モードにすると、Backand UI からセキュリティ アクションをテストするとメッセージが生成されますが、API 経由でメソッドを呼び出すとログに記録されません。

API のサインアップ メソッドに指定されたパラメーターを使用して、新しく作成されたユーザーの役割を条件付きで設定できるかどうかは誰にもわかりませんか?

4

1 に答える 1

0

パラメータをサインアップ アクションに送信し、そこでロール割り当てロジックを実装できます。

サインアップ リクエスト本文の例を次に示します。

{
 "firstName": "string",
  "lastName": "string",
  "email": "{{username}}",
  "password": "123456",
  "confirmPassword": "123456",
  **"parameters":{ "userType" :"manager"}**
}

ドキュメントに記載されているように、Create の前に次のようなカスタムのサーバー側 Javascript セキュリティ アクションを追加します。

'use strict';
function backandCallback(userInput, dbRow, parameters, userProfile) {
    // write your code here

    userInput.Role = 'Public';
    if(parameters.userType =='manager')
        userInput.Role = 'Manager';
    return {};
}

上記が機能するために、新しい「マネージャー」ロールを追加しました(セキュリティと認証->セキュリティテンプレート->ロールの追加)

于 2016-06-29T12:06:32.603 に答える