2017-09-24 11 views
1

私は、ログインしauth0でemberjsを使用しています。 は、通常、私は、ユーザー名とパスワードを入力し、私は今、などauth0クライアントからapiから有効なトークンを取得するには?

をAPIに送る有効なトークンを取得し、私はAPIのいくつかのテストを書きたいと私は常に必要です有効なトークン私のトークンは1日で失効します。テストを実行するには、常に手動でトークンサンプルを変更する必要があります。

だから私は何とか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固有の管理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エンドポイントを呼び出して、(そのAPIのため)のclientId、clientSecret、観客を渡し、付与型(client_credentials):次のように

コールの "形状"

はかなりあります。 emberjs/phpでこれを行う場合 - 非常に似ています - Auth0 Dashboardで新しいクライアントを作成し、 Non Interactiveクライアントタイプを選択した場合は、 Quick Startを押してください - 必要に応じて設定を案内します。下のスクリーンショットを参照してください。あなたが何らかの問題がある場合は、コメントを残しておきましょう。

enter image description here