ช่วงนี้ได้ศึกษาเกี่ยว LINE Front-end Framework หรือ LIFF ก็มาเจอประเด็นการผูกบัญชีผู้ใช้งานหลังบ้านของ Rails กับผู้ใช้งานของ LINE จะทำอย่างไรได้บ้าง ในเมื่อในฝั่งหลังบ้านเกิดใช้ข้อมูล username และ email ไม่ตรงกับข้อมูล username และ email ที่เราใช้ใน LINE
จากตัวอย่างสมมติว่าโปรแกรมที่ใช้ภายในองค์กร ซึ่งผู้ใช้งานได้ลงทะเบียนไว้โดยใช้ username และ email ขององค์กรที่เราทำงานอยู่ แต่สำหรับบัญชีของ LINE เราก็ใช้ username และ email ที่เป็นส่วนตัวของเรา จากข้อมูลดังกล่าวทำให้เราไม่สามารถจะผูกบัญชีเข้าด้วยกันได้เลย เพราะข้อมูลไม่เพียงพอ หรือจะยืนยันได้เลยว่านั้นคือคนๆ เดียวกัน
ดังนั้นวิธีที่จะนำมาใช้แก้ปัญหาอันนี้แบบง่ายๆ ก็จะเป็นการใช้ verification key ที่จะถูกสร้างและผูกอยู่กับบัญชีผู้ใช้งานหลังบ้านของแต่ละคน และ verification key ก็จะไม่ซ้ำกัน ในกรณีที่อยากให้ระบบมีความปลอดภัยมากขึ้นก็อาจจะใช้เป็น OTP ก็ได้
โดย Flow ที่จะนำมาใช้ในการยืนยันตัวตนจะเป็นดังนี้
ที่นี้เราก็มาลองพัฒนาโปรแกรมเพื่อทดสอบ Flow ดูหน่อยว่าจะเป็นอย่างไรบ้าง
จากตัวอย่างสมมติว่าโปรแกรมที่ใช้ภายในองค์กร ซึ่งผู้ใช้งานได้ลงทะเบียนไว้โดยใช้ username และ email ขององค์กรที่เราทำงานอยู่ แต่สำหรับบัญชีของ LINE เราก็ใช้ username และ email ที่เป็นส่วนตัวของเรา จากข้อมูลดังกล่าวทำให้เราไม่สามารถจะผูกบัญชีเข้าด้วยกันได้เลย เพราะข้อมูลไม่เพียงพอ หรือจะยืนยันได้เลยว่านั้นคือคนๆ เดียวกัน
ดังนั้นวิธีที่จะนำมาใช้แก้ปัญหาอันนี้แบบง่ายๆ ก็จะเป็นการใช้ verification key ที่จะถูกสร้างและผูกอยู่กับบัญชีผู้ใช้งานหลังบ้านของแต่ละคน และ verification key ก็จะไม่ซ้ำกัน ในกรณีที่อยากให้ระบบมีความปลอดภัยมากขึ้นก็อาจจะใช้เป็น OTP ก็ได้
โดย Flow ที่จะนำมาใช้ในการยืนยันตัวตนจะเป็นดังนี้
ที่นี้เราก็มาลองพัฒนาโปรแกรมเพื่อทดสอบ Flow ดูหน่อยว่าจะเป็นอย่างไรบ้าง
- สร้างเว็บแอพพลิเคชันของเรา โดยสร้างบัญชีผู้ใช้งานหลังบ้านขึ้นมา โดยมี username เป็น `user1` และมี verification key เป็น `654321` เราสามารถเข้าสู่ระบบโดยใช้ `user1` จากหน้าเว็บได้
- สร้าง LINE LIFF Application บนหน้า LINE Console
- เพื่อให้ง่ายต่อการทดสอบ เราจะใช้ ngrok เข้ามาช่วย โดยเราไม่จำเป็นต้องติดตั้งเว็บแอพพลิเคชันของเราบน Production Server รวมถึงสามารถเข้าถึงผ่าน HTTPS ได้ด้วย
- นำ LIFF URL ที่ได้ไปเปิดบนเว็บบราวเซอร์
เพียงเท่านี้เราก็สามารถจะเชื่อมบัญชีผู้ใช้งานของ Rails กับผู้ใช้งานจาก LINE ได้แล้ว ซึ่งขั้นตอนการยืนยันตัวตนนั้นสามารถนำ OTP เข้ามาใช้แทนได้อีกด้วย เพื่อเพิ่มความปลอดภัยในการใช้งานมากยิ่งขึ้น และการผูกบัญชีผู้ใช้งานของ Rails 1 คนสามารถที่จะผูกผู้ใช้งานจาก LINE ได้มากกว่า 1 คนได้อีกด้วย
References:
References: