參考官方新聞連結 ,在 2021 年 6 月之後官方推薦使用 API 的方式生成 CAT(Channel Access Token),操作方式有夠複雜。如果想要一個沒有期限、只需要一個,可以放置 play 的 Long-lived channel access token,後台依然是可以選擇申請的(for Messaging API, Login API 從 v2 開始就已經使用 API 呼叫)。短期的話就會有個數和天數的限制。
先說幾個 short-lived channel access token 特點:
- 後台註冊註冊 key-pair 最多 2 個(後面會提到流程),所以公鑰私鑰你各位要保管好阿!
- 驗證部分,如果是透過 v2.1 產生的 token 需要用 v2.1 的 API 驗證。
- JWT (後面會提到流程),exp 最長是 30 分鐘,動態生成的意思;而 token_exp 最長是 30 天。
- token 最多生成 30 個,所以要定期更換。目前看來沒有 refresh 的 API,所以需要 revoke 後再 issue
- 注意 v2.1 和 v2 issue token 差別是如果 30 個滿了, v2 會替換舊的, v2.1 會阻止你發。
大致上操作就是生成 key-pair 註冊公鑰得到 kid ,透過規定的 private key, header, payload 生成有效JWT (參考文章),最後透過 API 呼叫(參考)產生 token,如下圖:

完整流程如下:

未來 v2 會逐步淘汰,如果以 v2.1 處理的話,如果 SDK 有做好那就最棒了,沒的話建議搞一個套件來用會比較保險。而 token 的部分可能要做一個 cron job 來定時更新,保持單一 token 可用會比較好。有遇到再說嘍。
這裡有技術說明參考,其中還有包括 retry 的機制說明: