2017-02-02 21 views
0

認証されたユーザーだけがデータベースのクラスを変更します。たとえば :認証の確認 - パースクラウド

Parse.Cloud.beforeSave(("anything (I don't know how") => { 
    // Something like this 
    if (!verify(request.user)) { 
     response.error("Not authenticated/Token is invalid"); 
     return 
    } 
    // ... 
    response.success(); 
}); 

は、あなたが任意のアイデアを持っていますか? Parseを初めて使用していることに注意してください。 、

function verify(user) { 
    var sessionToken = user.getSessionToken(); 

    if(!sessionToken) 
     return false; 
    else 
    { 
     var query = new Parse.Query(Parse.Object.extend("_Session")); 
     query.first({useMasterKey:false, sessionToken:sessionToken }) 
      .then(function(validSessionToken){ 
       //User is signed in, and has a valid token (not expired yet) 
       return true; 
      }) 
      .fail(function(){   
       //User doesn't have a valid sessionToken 
       return false; 
      }); 

    } 
} 

アイデアは、「検証」することで、Requestオブジェクトと同じはsessionTokenを持つ_SESSIONオブジェクトを探して、_SESSIONクラスにクエリを発行してはsessionToken:

+1

アクセスを制限して特定のクラスを変更/作成/読み取りする場合は、CLPを使用できるはずです。これらを設定するには、おそらくダッシュボードを用意する必要があります。しかし、これにより、各クラスのどのようなアクションを実行できるかをロールとユーザーが指定できるようになります。 – EReid

+0

@EReid 解析ダッシュボードをインストールしましたが、ロールを追加する方法が見つかりません。 – Etgar

+0

おそらく別の質問に最適です。しかし、Roleクラスに行を追加することはできます。また、そのアイテムのユーザー関係にユーザーを追加できるようにする必要があります。プログラムでもこれを行うことができます。これはおそらくアドバイスします。特定のクラスを保護するには、セキュリティに行き、新しいロールを追加することができます。ここでは、構文解析ガイドのセキュリティーに関するセクションをご覧ください:https://parseplatform.github.io/docs/js/guide/ – EReid

答えて

0

あなたはこのようなverify()機能を実装する必要がありますMASTER_KEYを使用しません。

sessionTokenが存在する場合は、MASTER_KEYを使用してアクセスするACLと現在のsessionTokenを持つユーザーが存在するため、sessionTokenが返されます。

MASTER_KEYではなく問合せでsessionTokenを使用すると、それ以外のsessionTokensは決して見ることができません。

関連する問題