Authentication =============== | User Authentication ------------------------ สำหรับ User จะใช้การยืนยันตัวตนผ่านมาตรฐาน `OAuth2.0​ `_ (Open Authentication) และ `JWT `_ (JSON Web Token) โดยให้บริการเป็นแบบ REST API อยู่ที่ Domain : |auth_url| รายละเอียดการใช้งานมีดังนี้ | **1. การ Login หรือทำการขอ Access Token ด้วย Username และ Password** :EndPoint: |auth_url|/oauth/token :Method: POST :Request Header: Content-type : *application/form-data* Authorization : *Basic Application Client ID* :Parameter: ``grant_type`` :*string* ระบุเป็น "password" (เป็นค่าตามมาตรฐานของ OAuth) ``username`` :*string* คือ Account หรือ Email ที่ลงทะเบียนไว้ใน Platform ``password`` :*string* คือ Password ที่ลงทะเบียนไว้ใน Platform :Return: ``UserToken`` :*object* (หรือ Error Message) - *access_token => JWT ที่จะนำไปใช้แสดงตัวตนเมื่อจะใช้งาน Services อื่น ๆ ภายใน Platform* - *token_type => ประเภทของ Token (ค่า Default คือ Bearer)* - *expires_in => วันเวลาที่ Access Token จะหมดอายุ (Timestamp)* - *refresh_token => รหัสที่ใช้ในการขอ Access Token ใหม่กรณีที่หมดอายุ* - *scope => สิทธิ์การใช้งาน (Authorization)* - *userinfo => ข้อมูล User (Object)* | **2. การ Re-new Token เมื่อ Access Token กำลังจะหมดอายุ** :EndPoint: |auth_url|/oauth/token :Method: POST :Request Header: Content-type : *application/form-data* Authorization : *Basic Application Client ID* :Parameter: ``grant_type`` :*string* ระบุเป็น "refresh_token" (เป็นค่าตามมาตรฐานของ OAuth) ``refresh_token`` :*string* คือ รหัสที่ใช้ในการขอ Access Token ใหม่กรณีที่หมดอายุ ``userid`` :*string* คือ User ID :Return: ``NewToken`` :*object* (หรือ Error Message) - *access_token => JWT ที่จะนำไปใช้แสดงตัวตนเมื่อจะใช้งาน Services อื่น ๆ ภายใน Platform* - *token_type => ประเภทของ Token (ค่า Default คือ Bearer)* - *expires_in => วันเวลาที่ Access Token จะหมดอายุ (Timestamp)* - *refresh_token => รหัสที่ใช้ในการขอ Access Token ใหม่กรณีที่หมดอายุ* | **3. การ Logout หรือยกเลิกการใช้งาน Access Token และ Refresh Token** :EndPoint: |auth_url|/user/logout :Method: POST :Parameter: ``refresh_token`` :*string* คือ รหัสที่ใช้ในการขอ Access Token ใหม่กรณีที่หมดอายุ :Return: ``NewToken`` :*object* (หรือ Error Message) - *status => Response Code* - *error => ข้อความแจ้งความผิดพลาด(ถ้าดำเนินการไม่สำเร็จ)* - *result => ข้อมูล User Token ที่ยกเลิกการใช้งานได้สำเร็จ* | Device Authentication -------------------------- สำหรับ Device จะใช้การยืนยันตัวตนโดยใช้ Device ID (Unique ID) และ Token โดยเข้าไปที่ |portal_url| เพื่อเข้าไปสร้างข้อมูล Device ที่จะต้องใช้ในการเชื่อมต่อ Platform ดูรายเอียดได้ที่ :ref:`key-device-platform`