Authentication
Tương tự với hầu hết các hệ thống API khác, Goship API cũng yêu cầu bao gồm thông tin xác thực (JWT Token) trên từng requests tới hệ thống Goship.
Hướng dẫn này giả định rằng bạn đã có tài khoản Goship.io và tài khoản developer. Nếu bạn chưa có tài khoản, xem hướng dẫn tại Thiết lập cơ bản.
Login
Login để lấy access token là bước đầu tiên trong quá trình tích hợp Goship API. API Login này yêu cầu bạn phải cung cấp thông tin tài khoản đã đăng ký với Goship trước đó làm request body của API.
POST https://sandbox.goship.io/api/v2/login
Request body:
{
"username": "[email protected]",
"password": "bestshop",
"client_id": 1,
"client_secret": "gNBVFAvvU7lp9ARkqh7M0VOz..."
}
Thông tin request như sau:
username
: Tài khoản đăng nhập Goship.iopassword
: Password của tài khoản Goship.ioclient_id
: Thông tin Client ID lấy từ Goship API Accountclient_secret
: Thông tin Client Secret lấy từ Goship API Account
Bạn sẽ nhận được response data như sau:
{
"code": 200,
"status": "success",
"token_type": "Bearer",
"expires_in": 1296000,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbG...",
"refresh_token": "def502004f618f338802db..."
}
Chúng ta sẽ sử dụng access_token
để thực hiện authentication trong các request call Goship API.
Refresh token
Thời gian tồn tại của access_token
trên hệ thống Goship API là rất dài, khoảng 100 năm. Vì vậy bạn cũng không cần phải dùng tới refresh_token
trừ khi bạn thích.
Để làm mới access_token
bạn call một POST request như sau:
POST https://sandbox.goship.io/api/v2/refresh_token
{
"refresh_token": "def502004f618f338802db...",
"client_id": 1,
"client_secret": "gNBVFAvvU7lp9ARkqh7M0VOz..."
}
Tham khảo Refreshing an access token.
Xác thực token
Goship API sử dụng xác thực token với header Authentication kiểu Bearer.
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbG.....
Thông báo lỗi
Nếu request tới 1 api mà không có thông tin xác thực, bạn sẽ nhận được 1 response Unauthenticated
như sau:
{
"code": 401,
"status": "error",
"data": {
"error": "Unauthenticated."
}
}
Hãy chắc chắn là bạn đã thêm một header Authorization cho các request.