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.io
  • password: Password của tài khoản Goship.io
  • client_id: Thông tin Client ID lấy từ Goship API Account
  • client_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.

Edit this page on GitHub Updated at Tue, Mar 29, 2022