以下分別針對「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 登入。 完成發佈。












沒有留言:
張貼留言