Mật khẩu ứng dụng

Thư viện ứng dụng API của Google cho .NET sử dụng các tệp client_secrets.json để lưu trữ các tham số client_id, client_secret và các tham số OAuth 2.0 khác.

Tệp client_secrets.json là một tệp có định dạng JSON, chứa mã ứng dụng khách, mật khẩu ứng dụng khách và các tham số OAuth 2.0 khác. Dưới đây là tệp client_secrets.json mẫu cho một ứng dụng web:

{
  "web": {
    "client_id": "asdfjasdljfasdkjf",
    "client_secret": "1912308409123890",
    "redirect_uris": ["https://www.example.com/oauth2callback"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

Dưới đây là tệp client_secrets.json mẫu cho một ứng dụng đã cài đặt:

{
  "installed": {
    "client_id": "837647042410-75ifg...usercontent.com",
    "client_secret":"asdlkfjaskd",
    "redirect_uris": ["http://localhost"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

Định dạng này xác định một trong hai loại mã ứng dụng khách:

  • web: Ứng dụng web.
  • installed: Ứng dụng đã cài đặt.

Đối tượng phụ webinstalled có các thành phần bắt buộc sau:

  • client_id (chuỗi): Mã ứng dụng khách.
  • client_secret (chuỗi): Mật khẩu ứng dụng khách.

Tất cả các thành phần khác của tệp này là không bắt buộc và thư viện ứng dụng .NET không sử dụng các thành phần đó.

Động lực

Thông thường, các nhà cung cấp điểm cuối OAuth 2.0 yêu cầu những người sử dụng dịch vụ của họ sẽ sao chép và dán mã ứng dụng khách cũng như mật khẩu ứng dụng khách từ trang đăng ký vào mã đang hoạt động. Phương thức này dễ xảy ra lỗi và đưa ra bức tranh không đầy đủ về thông tin cần thiết để OAuth 2.0 hoạt động. (OAuth 2.0 cũng yêu cầu phải biết tất cả các điểm cuối và định cấu hình URI chuyển hướng). Nếu nhà cung cấp dịch vụ cung cấp các tệp client_secrets.json có thể tải xuống và thư viện ứng dụng đã sẵn sàng sử dụng những tệp này, thì việc triển khai OAuth 2.0 sẽ dễ dàng và ít xảy ra lỗi hơn.