2017-01-19 46 views
0

訪問令牌這是啓動腳本代碼我已經加入如何處理回送

module.exports = function enableAuthentication(server) { 
    //enable authentication 
    server.enableAuth(); 
}; 

在郵遞員的工具,我已經通過如下用戶/註銷API(注意頭設置授權嘗試:我創建該user模型通過擴展User模型),

authorization LqAHkjJV4JQ7oiW6QrYPeDoJszqUXSSUi7NwTHivKV0jyNK3VSyIyFxon72NfPzZ 

但IAM提示以下錯誤:,

{"error":{"name":"Error","status":500,"message":"could not find accessToken","stack":"Error: could not find accessToken\n at D:\\zauth\\node_modules\\loopback\\common\\models\\user.js:302:12\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:2056:62\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:1984:11\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:396:17\n at async.each (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:153:20)\n at _asyncMap (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:390:13)\n at Object.map (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:361:23)\n at allCb (D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:1912:15)\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\connectors\\memory.js:472:7\n at _combinedTickCallback (internal/process/next_tick.js:67:7)\n at process._tickDomainCallback (internal/process/next_tick.js:122:9)"}} 

此外,我已經盡力了,

http://localhost:3000/api/users/logout?access_token=LqAHkjJV4JQ7oiW6QrYPeDoJszqUXSSUi7NwTHivKV0jyNK3VSyIyFxon72NfPzZ 

它不是沃金,同樣的錯誤

我必須知道如何打發的accessToken @ kamal0808

+0

幫助獲得解決方案@ kamal0808 – user7369339

+0

您需要首先了解錯誤。讓我們一個接一個地分解這個問題。轉到您的數據庫,並查看訪問令牌是否存在於AccessToken集合中? – kamal0808

回答

0

默認的ACL內置的用戶模型沒有允許上市用戶:

你可以看到完整的配置在這裏: https://loopback.io/doc/en/lb3/Managing-users.html#default-access-controls

上述ACL拒絕所有操作於每個人,然後選擇性地允許:

  • 任何以創建新的用戶(用戶實例)。
  • 任何人都可以登錄,註銷,確認他們的身份,並重置他們自己的密碼。
  • 用戶在其自己的用戶記錄(實例)上執行deleteById,findById和updateAttributes。

您不能直接修改內置用戶模型,因此您需要對其進行擴展。

如何在成功登錄後傳遞訪問令牌? 有兩種方法做到這一點:

你應該使用HTTP頭,因爲使用查詢參數是不夠安全的(他們不通過SSL加密後的協議,並可以留在瀏覽器或其他客戶端的歷史)

檢查的詳細信息的文檔。https://loopback.io/doc/en/lb3/Making-authenticated-requests.html

+0

好吧假設我已經創建了自定義模型(用戶)擴展內置(用戶模型),一旦我調用登錄API後生病獲取訪問令牌。我的問題是如何通過授權頭中的訪問令牌,以便我打電話給所有其他方法(GET用戶)。 – user7369339

+0

我已經嘗試在PostMan工具中通過設置標題選項卡中的GET用戶,作爲授權和值的密鑰(我登錄後獲得的訪問令牌),但仍然需要授權所需的錯誤 – user7369339

+0

是我必須設置ACL,如$認證爲用戶自定義模型GET用戶api ????? – user7369339

0

你需要爲每一次的ACL(訪問控制級別) PI申請申請。

這裏的文檔鏈接,訪問控制列表: https://loopback.io/doc/en/lb2/Controlling-data-access.html

爲您的代碼,你需要得到下列對象在Users.json文件的訪問控制列表數組:

{ 
    "accessType": "EXECUTE" 
    "principalType": "ROLE", 
    "principalId": "$authenticated", 
    "permission": "ALLOW", 
    "property": "find" 
} 

$認證是指任何可以登錄的人。您也可以爲用戶創建自定義角色。

+0

ok假設我已經創建了一個自定義模型(用戶)擴展內置(用戶模型),一旦我調用登錄api病得到訪問令牌。我的問題是如何傳遞授權頭中的訪問令牌,以便我調用所有其他方法(GET用戶)。 \t \t 我已經在標題標籤一樣,關鍵是授權和值(訪問令牌登錄後,我得到)設定試圖郵遞員工具獲取用戶,但仍IAM獲得所需的授權錯誤 \t \t 是,我有爲用戶自定義模型設置像$認證的ACL以獲取用戶api ????? – user7369339

+0

您需要在環回中啓用auth服務。嘗試爲相同的設置啓動腳本。閱讀http://loopback.io/doc/en/lb3/Controlling-data-access.html#enabling-authentication。它會自動發送帶有訪問令牌的請求。 – kamal0808

+0

@ user7369339是否嘗試設置啓動腳本?你的問題是什麼狀態? – kamal0808