2017-09-24 67 views
1

我使用emberjs與auth0登錄。 通常我輸入用戶名和密碼,我得到我發送給API等如何從auth0客戶端的api獲取有效令牌?

現在有效的標記,我想寫的API一些測試,我總是需要一個有效的標記。我的令牌在一天內到期。所以要運行測試,我總是必須手動更改令牌示例。

所以我想從API獲取令牌?是可能的,怎麼樣?

回答

2

非常好的問題。測試的一個簡單方法是使用Client Credentials Grant Flow。由於您想在測試中使用訪問令牌,因此您可以將其視爲機器來處理流量。

這裏是一個例子,我從測試to receive an Auth0 Management API v2 access token這樣做。和corresponding test too。這裏是我使用訪問令牌查找as part of a separate test的地方。但是,無論是Auth0特定的Management API還是使用非交互式客戶端和您自己的受衆在Auth0儀表板(API下)定義的API,相同的原則都適用。

該呼叫的 「形」 是非常如下:

{ 
    method: 'POST', 
    url: 'https://{TENANT}.auth0.com/oauth/token', 
    headers: { 'content-type': 'application/json' }, 
    body: '{ 
     "client_id":"{CLIENT ID}", 
     "client_secret":"{CLIENT SECRET}, 
     "audience":"https://{tenant}.auth0.com/api/v2/", 
     "grant_type":"client_credentials" 
    }' 
}; 

您撥打oauth/token端點,並通過的clientId,clientSecret,觀衆(對於API),並授予型(client_credentials) 。如果用emberjs/php來做 - 這非常相似 - 如果您在Auth0儀表板中創建一個新客戶端並選擇Non Interactive客戶端類型,然後點擊Quick Start - 它會引導您完成設置(如果需要)。看到下面的截圖,如果你有任何probs,隨時留下評論。

enter image description here

相關問題