Hướng dẫn lấy Access Tokens cho trong Lark Open Platform

1. Giới thiệu

Ứng dụng cửa hàng trong Lark Open Platform cần sử dụng hai loại access token chính: app_access_tokentenant_access_token. Bài viết này sẽ hướng dẫn cách lấy cả hai loại token này và cung cấp các mẹo để lưu trữ chúng an toàn.

2. Lấy app_access_token

2.1 Thông tin API

  • URL: https://open.larksuite.com/open-apis/auth/v3/app_access_token
  • Phương thức: POST
  • Loại ứng dụng hỗ trợ: Chỉ ứng dụng cửa hàng

2.2 Request

Headers

{
  "Content-Type": "application/json; charset=utf-8"
}

Body

{
  "app_id": "cli_slkdjalasdkjasd",
  "app_secret": "dskLLdkasdjlasdKK",
  "app_ticket": "dskLLdkasd"
}

2.3 Response

{
  "code": 0,
  "msg": "success",
  "app_access_token": "a-6U1SbDiM6XIH2DcTCPyeub",
  "expire": 7140
}

3. Lấy tenant_access_token

3.1 Thông tin API

  • URL: https://open.larksuite.com/open-apis/auth/v3/tenant_access_token
  • Phương thức: POST
  • Loại ứng dụng hỗ trợ: Chỉ ứng dụng cửa hàng

3.2 Request

Headers

{
  "Content-Type": "application/json; charset=utf-8"
}

Body

{
  "app_access_token": "a-32bd8551db2f081cbfd26293f27516390b9feb04",
  "tenant_key": "73658811060f175d"
}

3.3 Response

{
  "code": 0,
  "msg": "success",
  "tenant_access_token": "t-caecc734c2e3328a62489fe0648c4b98779515d3",
  "expire": 7140
}

4. Ví dụ sử dụng Python

Dưới đây là ví dụ về cách lấy cả app_access_tokentenant_access_token bằng Python:

import requests
import json

def get_app_access_token(app_id, app_secret, app_ticket):
    url = "https://open.larksuite.com/open-apis/auth/v3/app_access_token"
    headers = {"Content-Type": "application/json; charset=utf-8"}
    payload = {
        "app_id": app_id,
        "app_secret": app_secret,
        "app_ticket": app_ticket
    }
    response = requests.post(url, headers=headers, data=json.dumps(payload))
    return response.json()

def get_tenant_access_token(app_access_token, tenant_key):
    url = "https://open.larksuite.com/open-apis/auth/v3/tenant_access_token"
    headers = {"Content-Type": "application/json; charset=utf-8"}
    payload = {
        "app_access_token": app_access_token,
        "tenant_key": tenant_key
    }
    response = requests.post(url, headers=headers, data=json.dumps(payload))
    return response.json()

# Sử dụng các hàm
app_id = "your_app_id"
app_secret = "your_app_secret"
app_ticket = "your_app_ticket"
tenant_key = "your_tenant_key"

app_token_response = get_app_access_token(app_id, app_secret, app_ticket)
app_access_token = app_token_response['app_access_token']

tenant_token_response = get_tenant_access_token(app_access_token, tenant_key)
tenant_access_token = tenant_token_response['tenant_access_token']

print(f"App Access Token: {app_access_token}")
print(f"Tenant Access Token: {tenant_access_token}")

5. Mẹo lưu trữ mã token an toàn

  1. Sử dụng biến môi trường: Lưu trữ các token nhạy cảm như app_secret trong biến môi trường thay vì hard-code trong mã nguồn.
  2. Mã hóa token: Nếu cần lưu trữ token, hãy mã hóa chúng trước khi lưu vào cơ sở dữ liệu.
  3. Sử dụng key management service: Đối với ứng dụng quy mô lớn, hãy sử dụng dịch vụ quản lý khóa như AWS KMS hoặc Google Cloud KMS.
  4. Rotation định kỳ: Thực hiện rotation (thay đổi) các token định kỳ để giảm thiểu rủi ro bảo mật.
  5. Kiểm soát truy cập: Giới hạn quyền truy cập vào các token chỉ cho những người cần thiết.
  6. Logging và Monitoring: Theo dõi việc sử dụng token và cảnh báo khi có hoạt động bất thường.
  7. Không lưu trữ trong version control: Tuyệt đối không lưu trữ token trong hệ thống quản lý phiên bản như Git.
  8. Sử dụng secret management tools: Công cụ như HashiCorp Vault có thể giúp quản lý và bảo vệ các token một cách hiệu quả.
  9. Implement token refresh: Tự động làm mới token trước khi hết hạn để tránh gián đoạn dịch vụ.
  10. Xóa token khi không cần thiết: Khi một phiên làm việc kết thúc, hãy xóa token khỏi bộ nhớ.

6. Kết luận

Việc lấy và quản lý app_access_tokentenant_access_token đúng cách là rất quan trọng cho sự thành công của ứng dụng cửa hàng trên Lark Open Platform. Bằng cách tuân thủ các hướng dẫn này và áp dụng các mẹo bảo mật, bạn có thể đảm bảo rằng ứng dụng của mình tương tác với API của Lark một cách an toàn và hiệu quả.

Lên đầu trang