<figure class="wp-block-video"></figure>



<p class="wp-block-paragraph">LINE Login API à¸à¸·à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸«à¸£à¸·à¸à¸ªà¸¡à¸±à¸à¸£à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¸ SSO ( Single Sign On ) à¸à¸§à¸²à¸¡à¸«à¸¡à¸²à¸¢à¸à¸·à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸µà¸¢à¸§à¸à¸±à¸à¸à¸±à¸à¹à¸à¸¥à¸à¸à¸à¸£à¹à¸¡à¹à¸ à¹à¸à¸¥à¸à¸à¸à¸£à¹à¸¡à¸«à¸à¸¶à¹à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¹à¸à¸²à¸ à¹à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¸µà¹à¸à¹à¸à¸·à¸à¸à¸²à¸£à¹à¸à¹ Line Account à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸«à¸£à¸·à¸à¸ªà¸¡à¸±à¸à¸£à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¹à¸²à¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸·à¹à¸</p>



<p class="wp-block-paragraph">à¹à¸à¹à¸§à¸à¸£à¹à¸à¸±à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸à¸ LINE Login API à¸à¸²à¸à¸à¸°à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸§à¸²à¸¡à¸à¸´à¸¢à¸¡à¸¡à¸²à¸à¸à¸±à¸ à¹à¸à¸£à¸²à¸°à¸à¹à¸à¸¡à¸¹à¸¥ JSON à¸à¸µà¹ Response à¸à¸¥à¸±à¸à¸¡à¸²à¸à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¸à¸£à¸´à¸ ๠à¹à¸à¹à¸à¸·à¹à¸à¹à¸¥à¸°à¸£à¸¹à¸à¸ าà¸à¸à¸£à¸°à¸à¸³à¸à¸±à¸§à¹à¸à¹à¸²à¸à¸±à¹à¸ ยัà¸à¹à¸¡à¹à¹à¸«à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸ email à¹à¸à¹à¸à¹à¹à¸§à¸à¸£à¹à¸à¸±à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸ 2.x à¹à¸à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸¡à¸¥à¹à¸¥à¹à¸§ à¸à¹à¸²à¸ id_token à¹à¸à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª JWT ( Json Web Token ) à¸à¹à¸§à¸¢à¹à¸«à¸à¸¸à¸à¸µà¹à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸²à¸ LINE Login API à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸£à¸±à¸à¸à¸§à¸²à¸¡à¸à¸´à¸¢à¸¡à¸à¸¶à¹à¸à¹à¸£à¸·à¹à¸à¸¢ ๠à¹à¸à¸£à¸²à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸à¸à¹à¸§à¸à¸à¸¶à¹à¸ à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸°à¸à¸à¸à¹à¸²à¸ Mobile Apps à¹à¸¥à¸° Web Apps</p>



<p class="wp-block-paragraph"><strong>à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¹à¸§à¸¢à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸ Line Channel</strong></p>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-1-940x542.png" alt="" class="wp-image-5141" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-1.png" data-full-size="1468x846" /></figure>



<ul class="wp-block-list"><li>à¹à¸à¹à¸²à¹à¸à¸à¸µà¹ <a rel="noreferrer noopener" href="https://developers.line.biz/en/" target="_blank">https://developers.line.biz/en/</a> à¹à¸à¸«à¸±à¸§à¸à¹à¸ Products à¹à¸«à¹à¹à¸¥à¸·à¸à¸ LINE Login à¸à¸à¸à¸¸à¹à¸¡ &#8216;Start Now&#8217;</li><li>à¹à¸à¸«à¸à¹à¸² Create a channel à¹à¸«à¹à¹à¸£à¸²à¸à¸£à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸¸à¸à¸à¸¢à¹à¸²à¸à¹à¸«à¹à¸à¸£à¸à¸à¹à¸§à¸ Provider à¸à¹à¸²à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¸¢à¸ªà¸£à¹à¸²à¸ à¹à¸«à¹à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸µà¹ Create a new Provider </li><li>หลัà¸à¸à¸²à¸à¸à¸ Create ระà¸à¸à¸à¸°à¸à¸²à¹à¸£à¸²à¸¡à¸²à¸à¸µà¹à¸«à¸à¹à¸²à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¸à¸à¸ Channel à¹à¸¥à¸°à¹à¸à¹à¸ Basic Setting à¹à¸«à¹à¹à¸¥à¸·à¹à¸à¸à¸¥à¸à¹à¸à¸«à¸²à¸«à¸±à¸§à¸à¹à¸ OpenID Connect สà¸à¸²à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸°à¹à¸à¹à¸ Unapplied à¹à¸«à¹à¸à¸ Apply à¹à¸¥à¸°à¸à¸£à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥ à¸à¸à¸ªà¸à¸²à¸à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¹à¸ Applied</li></ul>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-2.png" alt="" class="wp-image-5142" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-2.png" data-full-size="864x356" /></figure>



<ul class="wp-block-list"><li>à¸à¹à¸à¹à¸à¹à¸«à¹à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸ LINE Login à¹à¸¥à¸·à¸à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ Web Apps à¹à¸¥à¸° ระà¸à¸¸ Callback URL สำหรัภCallback URL à¸à¸°à¹à¸à¹à¸ URL à¸à¸µà¹à¹à¸£à¸²à¹à¸§à¹à¸£à¸±à¸ JSON Response à¸à¸µà¹à¸à¸¹à¸à¸à¸·à¸à¸à¹à¸²à¸¡à¸²à¸à¸²à¸ Line API à¸à¹à¸²à¹à¸¡à¹à¸ªà¸³à¹à¸£à¹à¸à¹à¸£à¸²à¸à¹à¸à¸°à¸£à¸¹à¹à¸§à¹à¸² สาà¹à¸«à¸à¸¸à¹à¸à¸´à¸à¸à¸²à¸à¸à¸°à¹à¸£ à¸à¹à¸²à¸ªà¸³à¹à¸£à¹à¸à¹à¸£à¸²à¸à¹à¸ªà¸²à¸¡à¸²à¸£à¸ Get à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¹à¸à¸²à¸à¸à¸£à¸à¸à¸µà¹ à¹à¸¥à¸°à¸à¸³à¹à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¸ ๠à¹à¸</li></ul>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-3-940x345.png" alt="" class="wp-image-5143" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-3.png" data-full-size="1898x696" /></figure>



<p class="wp-block-paragraph"><strong>à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¹à¸à¸à¹à¸ªà¹à¸à¸à¸ Request à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥ JSON Response à¸à¸µà¹à¸à¸°à¹à¸à¹à¸à¸¥à¸±à¸à¸¡à¸²</strong></p>



<ul class="wp-block-list"><li>à¸à¹à¸²à¹à¸à¹à¸²à¹à¸à¸à¸¹à¹à¸ Document à¸à¸à¸ LINE API https://developers.line.biz/en/docs/line-login/integrate-line-login/ à¸à¸°à¸¡à¸µà¸£à¸°à¸à¸¸à¸à¸±à¸à¹à¸à¸à¸à¸°à¸à¸£à¸±à¸à¸§à¹à¸² à¸à¸à¸ Request à¹à¸ à¹à¸£à¸²à¸à¹à¸à¸à¸ªà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸°à¹à¸£à¹à¸à¸à¹à¸²à¸ </li></ul>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-4-940x476.png" alt="" class="wp-image-5145" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-4.png" data-full-size="1508x764" /></figure>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list"><li>à¹à¸¥à¸°à¹à¸¡à¸·à¸à¸ Request สำà¹à¸£à¹à¸à¹à¸£à¸²à¸à¸°à¹à¸à¹ Reponse à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸°à¹à¸£à¸à¸¥à¸±à¸à¸¡à¸²à¸à¹à¸²à¸</li></ul>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-5-940x407.png" alt="" class="wp-image-5146" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-5.png" data-full-size="1956x846" /></figure>



<p class="wp-block-paragraph"><strong>à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¸µà¸¢à¸ PHP Line Login</strong></p>



<figure class="wp-block-image size-large"><img src="https://www.codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-7-940x672.png" alt="" class="wp-image-5162" data-full="https://codebee.co.th/labs/wp-content/uploads/2020/06/วิà¸à¸µà¸à¸³-LINE-Login-à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¹à¸§à¸¢-Line-7.png" data-full-size="1324x946" /></figure>



<p class="wp-block-paragraph">à¹à¸à¸·à¹à¸à¸à¸à¹à¸à¹à¸«à¹à¹à¸à¸£à¸µà¸¢à¸¡ Environment à¸à¸²à¸¡à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¸à¸°à¸à¸£à¸±à¸</p>



<ul class="wp-block-list"><li>à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸ <a rel="noreferrer noopener" href="https://github.com/makorn645/PHP-line-login-sdk" target="_blank">https://github.com/makorn645/PHP-line-login-sdk</a></li><li>à¹à¸à¹ PHP 7.2 หรืà¸à¹à¸§à¸à¸£à¹à¸à¸±à¹à¸à¸à¸µà¹à¸ªà¸¹à¸à¸à¸§à¹à¸²</li><li>à¹à¸à¹ Codeigniter Framework à¹à¸à¸à¸²à¸£à¸à¸à¸ªà¸à¸</li></ul>



<ul class="wp-block-list"><li>à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸à¸¥à¹ linelogin.php à¹à¸à¹à¸ Linelogin.php à¹à¸¥à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¸à¸¥à¸²à¸ªà¸à¸²à¸ linelogin à¹à¸à¹à¸ Linelogin</li><li>วาà¸à¹à¸à¸¥à¹ Linelogin à¹à¸§à¹à¹à¸à¸ªà¹à¸§à¸à¸à¸à¸ <strong>application/libraries</strong></li><li>à¹à¸à¸´à¸à¹à¸à¸¥à¹ Linelogin.php à¹à¸à¹à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹</li></ul>



<pre class="wp-block-code"><code lang="php" class="language-php">private const CLIENT_ID = 'à¹à¸ªà¹ Channel ID à¸à¸µà¹à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸à¸±à¹à¸à¸à¸à¸à¹à¸£à¸';
private const CLIENT_SECRET = 'à¹à¸ªà¹ Channel secret à¸à¸µà¹à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸à¸±à¹à¸à¸à¸à¸à¹à¸£à¸';
private const REDIRECT_URL = 'url à¸à¸µà¹à¹à¸£à¸²à¸à¸£à¸à¸à¹à¸à¹à¸à¹à¸à¹à¸ Line Login';</code></pre>



<ul class="wp-block-list"><li>สรà¹à¸²à¸ Login Controller à¹à¸¥à¸°à¸à¸³à¸à¸²à¸£ load libraries à¹à¸à¹à¸²à¸¡à¸²à¹à¸à¹à¸à¸²à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸à¸à¸²à¸¡à¸à¹à¸²à¸à¸¥à¹à¸²à¸</li></ul>



<pre class="wp-block-code"><code lang="php" class="language-php">class Login extends MX_Controller
{
	public function __construct()
	{
		parent::__construct();
		$this->;load->;library('linelogin'); // à¹à¸«à¸¥à¸ line libraries มาà¹à¸à¹à¸à¸²à¸
	}
	public function index(){
		$url = $this->;linelogin->;getLink(7); // à¸à¸ permission สำหรัà¸à¹à¸à¹à¸²à¸à¸¶à¸ profile, email 
		redirect($url);
	}
	public function line_login_callback(){
		$get = $this->;input->;get(); // รัภjson payload
		$code = $get['code'];
		$state = $get['state'];
		$token = $this->;linelogin->;token($code,$state); // curl à¹à¸à¸·à¹à¸à¸à¸ id_token
		$token = json_decode($token);
		print_r($token);
	}
}</code></pre>



<ul class="wp-block-list"><li>à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¸³à¸à¸±à¸ 3 à¸à¸¢à¹à¸²à¸à¸à¸·à¸ name, picture, email à¸à¸°à¸à¸¹à¸à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¹à¸à¸£à¸¹à¸à¹à¸à¸ JWT à¸à¸¶à¹à¸à¸à¸¢à¸¹à¹à¹à¸ $token->;id_token สามารà¸à¹à¸à¹à¸à¸³à¸ªà¸±à¹à¸ base64_decode à¸à¸¹à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸·à¹à¸à¸à¸à¹à¸à¹à¸à¹à¹à¸à¸£à¸¹à¸à¹à¸à¸ String à¹à¸à¹à¸à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¸à¹à¸à¸ à¸à¹à¸à¸à¹à¸à¹ JWT decode à¹à¸à¸à¸²à¸£à¸à¸à¸à¸£à¸«à¸±à¸ª <a rel="noreferrer noopener" href="https://github.com/firebase/php-jwt" target="_blank">https://github.com/firebase/php-jwt</a></li></ul>



<pre class="wp-block-code"><code class="">echo base64_decode($token->;id_token);</code></pre>



<p class="wp-block-paragraph">à¸à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸à¹à¸à¸µà¹ <a href="https://www.ivomaker.com/login" target="_blank" rel="noreferrer noopener">https://www.ivomaker.com/login</a></p>

วิธีทำ LINE Login เข้าสู่ระบบด้วย Line (PHP) บนเว็บไซต์

วิธีทำ-LINE-Login-เข้าสู่ระบบด้วย-Line
