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`