2017-02-10 8 views
1

私は自分のAPIにアクセスするためにユーザーの介入なしにサービスを作成しました。 Apiはユーザーを知る必要があります。したがって、私はリソース所有者の流れが必要です。grant_type = "password"を使用してrefresh_tokenを取得してaccess_tokenをリフレッシュしてAPIにアクセスすることはできますか

私のApiにアクセスするには、正しいスコープ「MyApiScope」のaccess_tokenが必要です。 scope = "MyApiScope"と指定したリソース所有者フローでaccess_tokenを取得できます。しかし、私はこのようにリフレッシュトークンを取得しません。

scope = "offline_access"を指定したリソース所有者フローでrefresh_tokenを取得できます。しかし、このリフレッシュトークンで生成されたaccess_tokensは、適切なスコープ「offline_access」!=「MyApiScope」を含んでいないため、Apiにアクセスするために使用することはできません。

このシナリオでは、リフレッシュトークンを使用することはできません。新しいアクセストークンを取得するには、常にusername/passwordを使用する必要がありますか?

ご協力いただきありがとうございます。

+1

「offline_access」スコープと「MyApiScope」スコープの両方を使用できないようにしてください。 –

+1

どのように簡単にできますか?私は範囲を追加し、それは働いた!私はちょうど間にスペースでスコープを連結しなければならないことを知らなかった(もちろんURLエンコードされている)。 'grant_type = password&username = {USERNAME}&password = {PASSWORD}&client_id = {CLIENT_ID}&client_secret = {CLIENT_SECRET}&scope = MyApiScope offline_access' – fantastischIdee

答えて

1

必要なすべてのスコープをスペースで区切って追加してください。
grant_type=password&username={USERNAME}&password={PASSWORD}&‌​client_id={CLIENT_ID‌​}&client_secret={CLI‌​ENT_SECRET}&scope=My‌​ApiScope offline_access

+0

スペースを"%20 "にURLエンコードする必要があります。自動的に行われるブラウザで貼り付けられたときには一般的には –

+0

大変ありがとうfantastischIdee –

関連する問題