以下分別針對「USBWebserver 與 Ngrok 設定操作」、「使用Postman 測試取得 LINE Login 帳戶資訊」兩個主題做說明。
USBWebserver 與 Ngrok 設定操作
USBWebserver 伺服器在本機端建立「linelogin.html」網頁服務,透過網頁連結埠 443,對外提供 HTTPS 連結,「Ngrok.com」將實際網址「https://00a14ff8c66e.ngrok.io/」導向 USBWebserver 連結埠 443,這樣對外的服務網址「https://00a14ff8c66e.ngrok.io/linelogin.html」才能正確連接至使用者本機的網頁。
使用 Postman 取得 LINE Login 帳戶資訊
「LINE Login」串接取得帳戶資訊流程與說明如下。
透過以下JavaScrippt程式碼抓取伺服器回傳「帳戶授權碼 code」,請注意code的有效性指有10分鐘,10分鐘後就要重新在抓新的code。
透過「帳戶授權碼」取得帳戶 Token
開啟 Postman 輸入以下資訊。
方法
注意事項:
Postman 輸入以下資訊。
方法
關於Email的取得,即使在程式碼中有設定,若使用者在授權階段選擇不同意授權存取email,也會導致無法取得email。
測試階段可以透過以下設定抓取email,到 Line Developers 後台的「Basic settings」頁籤畫面的下方「OpenID Connect」,將畫面中的內容設定完成才能取得email。
授權Email取得許可。
「OpenID Connect」設定成功後,在一次重新授權,這實可建到授權畫面多出了email選項。
發送「Postman」也可取得email。
發佈給顧客
最後在所有測試步驟就成功後,請務必確認「已發佈」 開放給顧客 LINE 登入。 完成發佈。
使用 Postman 取得 LINE Login 帳戶資訊
「LINE Login」串接取得帳戶資訊流程與說明如下。
- 取得帳戶授權碼。 說明:需要 HTTPS 網址,才能透過 HTTPS 網址取回「帳戶授權碼」,這部分無法使用「Postman」取得。
- 透過「帳戶授權碼」取得帳戶 Token。 說明:需要 HTTPS 網址搭配,不需要透過 HTTPS 網址取回Token,因此可使用「Postman」取得。
- 透過 Token 取得帳戶資訊如姓名、email。 說明:使用 Token 取得帳戶資訊可使用「Postman」取得。
透過以下JavaScrippt程式碼抓取伺服器回傳「帳戶授權碼 code」,請注意code的有效性指有10分鐘,10分鐘後就要重新在抓新的code。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>LINE Login Demo</title> </head> <body> <button id="lineLoginBtn">LINE login</button> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.js'></script> <script> var channel_id = "channel id"; var channel_secret = "channel secret"; var uri = "Https網址"; //var code = ""; $('#lineLoginBtn').on('click', function(e) { let client_id = channel_id; let redirect_uri = uri; let link = 'https://access.line.me/oauth2/v2.1/authorize?'; link += 'response_type=code'; link += '&client_id=' + client_id; link += '&redirect_uri=' + redirect_uri; link += '&state=login'; link += '&scope=openid%20profile%20email'; window.location.href = link; }); var url = new URL(window.location.href); var code = url.searchParams.get("code"); if(code != null) document.write('<br / > code : ' + code + '<br / >'); </script> </body> </html>執行後「帳戶授權碼 code」為 2nqdeDexLvgn5LTdHGPC。
透過「帳戶授權碼」取得帳戶 Token
開啟 Postman 輸入以下資訊。
方法
- POST
- Content-Type:application/x-www-form-urlencoded
- grant_type:authorization_code
- code:2nqdeDexLvgn5LTdHGPC
- redirect_uri: Https網址
- client_id:你的channel id
- client_secret:你的channel secret
注意事項:
- 每一組「帳戶授權碼 code」只能用「Postman」取得一次「帳戶Token」,若使用「Postman」發送第2次後就會產生錯誤。
- 「id_token」的內容本身就是一個 JWT 的加密結果,可透過 JWT.io 進行解密,解密的內容就是第三步的結果,。
Postman 輸入以下資訊。
方法
- POST
- Content-Type:application/x-www-form-urlencoded
- client_id:你的channel id
- id_token: 你的id_token
關於Email的取得,即使在程式碼中有設定,若使用者在授權階段選擇不同意授權存取email,也會導致無法取得email。
測試階段可以透過以下設定抓取email,到 Line Developers 後台的「Basic settings」頁籤畫面的下方「OpenID Connect」,將畫面中的內容設定完成才能取得email。
授權Email取得許可。
「OpenID Connect」設定成功後,在一次重新授權,這實可建到授權畫面多出了email選項。
發送「Postman」也可取得email。
發佈給顧客
最後在所有測試步驟就成功後,請務必確認「已發佈」 開放給顧客 LINE 登入。 完成發佈。
沒有留言:
張貼留言