iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1
Modern Web

認識LIFF容易嗎?系列 第 14

[Day14] LIFF GetIDToken

  • 分享至 

  • xImage
  •  

前言

昨天,我們認識到可以透過liff.getAccessToken()取得用戶資訊。
事實上,liff.getIDToken()也可以取得用戶資訊,兩者之間,有什麼差別呢?

liff.getIDToken

取得用戶當前的ID token。

關於ID Token

ID Token是JSON Web Token(JWT)結構,其中包含用戶資訊。

何時產生

  • Line內部瀏覽器
    • 用戶開啟LIFF APP,執行liff.init(),便可取得id_token
  • 外部瀏覽器(ex. Chrome)
    • 用戶開啟LIFF APP,執行liff.login()及liff.init(),便可取得id_token

用途

取得用戶資訊:user ID, name, picture URL, email。
在取得用戶資訊前,我們需要先取得其id_token。再利用它,透過HTTP Post,打驗證id_token的API。
如果回傳結果狀態是200,代表回傳結果包含用戶資訊。
image

注意

liff.getIDToken()的使用,其實和Line Developers Console裡,LIFF APP的scope設定相關。
假如未勾選openid,執行liff.getIDToken的結果會是null
image

如果仔細觀察,可以看出用liff.getAccessToken()與liff.getIDToken(),取得用戶資料的結果不同。

  • liff.getAccessToken()
    • 回傳結果: user ID, name, picture URL
  • liff.getIDToken()
    • 回傳結果: user ID, name, picture URL, email

實作

liff.init({
 liffId: '後台取得的LIFF ID'
}) .then(() => {
  if (liff.isLoggedIn()) {
   const idToken = liff.getIDToken();
   console.log("getIDToken", idToken) // print raw idToken object
   if (idToken) {
    alert("取得IDToken");
   }
  }
}
}).catch((err) => {
 console.log('初始化失敗')
});

接下來讓我們更進一步認識id_token!

參考


上一篇
[Day 13] LIFF GetAccessToken
下一篇
[Day 15] LIFF GetDecodedIDToken
系列文
認識LIFF容易嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言