🐼

Octokit.jsでRefresh Token付きの認可を更新できないトラブル

2023/07/18に公開

困った

Octokit.jsを使って、Device FlowでGitHub AppのUser Authenticationをとろうとしたら、
Refresh Tokenが機能しない。

調べた

まだ期限付きのユーザーアクセストークンの機能はオプション機能らしい。
https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens#response

Octokit.jsの(少なくとも)Device Flow用のプラグイン(※Strategyという外付けの認可用ライブラリ)は、
この新しいRefresh Tokenを使ったフローに対応してないっぽい。
https://github.com/octokit/auth-oauth-device.js#readme

解決した

オプション機能だっていう割には、今GitHub Appをゼロから作ると、なぜかこれがOpt-inされた状態で作られる。

Opt-outして(画面のとおり、Opt-inボタンになった状態で)解決した。
ExpireもRefresh TokenもないAuthentication Objectが返ってくるので、永遠に使える。。

とはいえ

ライブラリが対応したらRefresh Token・Expire付きにしたいよね、健全だし。

octokit.js, device-flow, GitHub

Discussion