2017-10-25 9 views
0

ループバック3のモデルでトークンを取得する必要があります。遠隔モデルや他のモデルでアクセストークンとユーザーIDを取得する方法はありますか?ループバックx3リモートモデルでaccesstokenを取得

私は試しています。

コード:

module.exports = function(app) { 


const User = app.models.User; 
    User.userDemo= function (cb) { 
console.log(here access token); 
    User.find({ 
     fields:['username','email'] 
    },cb); 
    }; 
    User.remoteMethod(
    'userDemo', 
    { 
     http: {path:'/user-demo', verb: 'get'}, 
     returns: { arg: '', type:'array',root:true} 
    } 
); 
}; 

答えて

1

現在suggested solutionは、メソッドはREST呼び出しによって呼び出されたときoptions引数をシードすることです。 options引数は、httpプロパティで設定された特定の値を持つリモートメタデータで注釈を付ける必要があります。

user.userDemo = function (options, cb) { 
    // options object contains context information (accessToken, currentUser, ...) 
    console.log(options); 
    user.find({ 
     fields: ['username', 'email'] 
    }, cb); 
    }; 

    user.remoteMethod(
    'userDemo', 
    { 
     http: {path: '/user-demo', verb: 'get'}, 
     accepts: [ 
     {arg: 'options', type: 'object', http: 'optionsFromRequest'} 
     ], 
     returns: {root: true} 
    } 
); 

追加情報:ループバック2.xで

それらはモジュールcontinuation-local-storage(以降cls-hooked)を使用して、現在のコンテキストAPIを導入します。それは多くの人々の事例のために働いたが、それはそれが信頼できない依存関係になるという問題があった。 Loopback 3.xでは、これらのAPIから離脱し、オブジェクトの伝達方法としてoptionsという形で代替案を提供しました(その一部は、上記の例のコードにあります)。 loopback-contextパッケージを含めることで古い方法を使用することはできますが、それは自己責任で行ってください。

+0

あなたの答えを高く評価しますが、私は実際にそのすべてのヒットで私はユーザーIDを取得したいので、私は私の手作業で作成されたアクセス許可テーブルのユーザーを検証します。 – waris

+0

あなたは何を意味するのか分かりません。リモートメソッドの 'options'オブジェクトからアクセストークンとユーザーIDの両方を取得できます。あなたがそれを傍受したいと思っている他の場所/瞬間はありますか? –

関連する問題