refresh_tokenについて

NE APIにおけるrefresh_tokenについて

各APIを利用する際、access_tokenに加えrefresh_tokenも併用することで、初回ユーザー認証のみでAPIを利用し続ける事が出来るようになるパラメータです

refresh_tokenの必要性

access_tokenのみの場合

access_tokenのみでAPIを利用する事が出来ますが、access_tokenの有効期限が切れた際、ユーザーの認証(リダイレクト)が必要になり、アプリ側では処理の途中で有効期限が切れた際の考慮が必要になります

(例えば受注更新->出荷確定を行うアプリの場合、受注更新後にaccess_tokenの有効期限が切れた場合は、ネクストエンジンサーバーへのリダイレクト後に出荷確定処理から戻れるように考慮する必要があります)

refresh_token併用時

access_tokenに加えrefresh_tokenも併用してAPIを利用するとaccess_tokenの有効期限が切れた際、refresh_tokenの有効期限内であればその時実行したAPIが【正常終了】し、実行結果に新しいaccess_token及びrefresh_tokenが設定されます

次回から新しいaccess_token及びrefresh_tokenを使う事で、初回ユーザー認証のみでAPIを利用する事が出来るようになります

また処理の途中でaccess_tokenの有効期限が切れてもアプリの一連の処理が正常終了する為、一連の処理の途中で有効期限が切れてしまった際の考慮が不要になります

そのためセキュリティ上の懸念(※)がある場合を除きrefresh_tokenを用いてAPIを利用することを推奨致します

※悪意のある攻撃者にユーザーのaccess_token、refresh_tokenが漏洩すると、ユーザーのデータが漏洩し続けてしまう可能性がありますaccess_token、refresh_tokenは漏洩しないように、細心のご注意をお願い致します

利用方法

SDKを利用する方

自動的に認証され、利用されます

各API利用後、access_token,refresh_tokenに変更があった場合は、アプリ側でユーザー(uid)毎にアプリ側で保持する必要があります(APIを実行後、毎回保存しても問題ありません)

以降はSDKのインスタンスを生成する時に、アプリ側で保存したaccess_tokenとrefresh_tokenを指定して下さい

SDKを利用されない方

認証についてを参考にaccess_tokenの取得まで実施し、access_token及びrefresh_tokenを取得し目的のAPIを利用します

各API利用後、access_token,refresh_tokenに変更があった場合は、アプリ側でユーザー(uid)毎にアプリ側で保持する必要があります(APIを実行後、毎回保存しても問題ありません)

以降はAPIを利用する時に、アプリ側で保存したaccess_tokenとrefresh_tokenを指定して下さい

補足説明

  • access_tokenの有効期限は1日、refresh_tokenの有効期限は3日です。有効期限は、「最初にaccess_tokenを発行した日時、又は最後にaccess_tokenの有効期限が切れてaccess_tokenが更新された日時からの日数」です
  • バッチ等認証なしで定期的にAPIを利用する場合、2日より前に定期的にAPIを実施し有効期限が切れないように利用することを推奨します(refresh_tokenの有効期限も切れた際は、access_tokenの有効期限切れと同じ002004のエラーになります。新しいaccess_tokenが発行されたにもかかわらず、古いaccess_tokenで実行した場合は、002002のエラーになります)
  • 同一ユーザーに対してマルチスレッドでAPIを利用する事は推奨しません(access_token,refresh_tokenが更新されたタイミングで、同一ユーザーに対する全スレッドのaccess_token,refresh_tokenも更新された値に変更する必要があり、アプリ側のaccess_token,refresh_tokenの管理が困難になる為)
  • access_token・refresh_tokenの更新は、リクエストがエラーになった時も更新されます。access_token・refresh_tokenをアプリで保持する際はエラー時も保持するようにして下さい