Tài liệu này mô tả các điểm cuối mà bạn gọi để thực hiện dòng chảy mã thẩm quyền OAuth 2.0, cũng như các điểm cuối khác có ích cho việc thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác thực hiện xác th
Base URL
https://apis.roblox.com/oauth
Endpoints
GET v1/authorizePOST v1/tokenPOST v1/token/introspectPOST v1/token/resourcesPOST v1/token/revokeGET v1/userinfoGET .well-known/openid-configuration
Authentification
GET v1/authorize
Nhận được thẩm quyền từ người dùng để xác thực hồ tài khoảnRoblox của họ.期待一个有效的 thẩm quyền URL được xây dựng với các tham số được quy định. This endpoint supports PKCE authorization.
Các biến trong truy vấn
Yêu cầu
Example Request of Directing to Authorization Flow
https://apis.roblox.com/oauth/v1/authorize?client_id=816547628409595165403873012&redirect_uri=https://my-app.com/redirect&scope=openid&response_type=code&nonce=12345&state=6789
Phản hồi
Sau khi gọi điểm cuối này, người dùng được chuyển hướng đến URL đích đã được chỉ định với mã đăng nhập ở một code điều kiện. Mã đăng nhập:
- Có một cuộc sống lâu dài của một phút.
- Chỉ có thể đổi một lần.
- Không hợp lệ sau một lần sử dụng.
Trao đổi token
Để nhận xuất khẩu một set các token để truy cập các API, trao đổi một mã autorization cho một set các token bí mật. Tất cả các điểm xuất khẩu token hỗ trợ hai loại đăng nhập khẩu khách hàng:
- HTTP Basic Authentication Scheme with an authorization header: Authorization: Basic Base64 encoded(<client_id>:<client_secret>) .
- ID khách hàng và bí mật trong thân bản yêu cầu như các biến độ.
Danh sách sau đây mô tả các loại token bạn nhận từ các cửa hàng này.
Token truy cập - Đại diện quyền truy cập từ một nhà sáng tạo hoặc người dùng cho một ứng dụng bên thứ ba để truy cập các tài nguyên Roblox bảo vệ của họ. Nó là một chuỗi đại diện cho một phạm vi, thời gian thực tế và các thuộc tính quyền truy cập
- Hợp lệ trong vòng 15 phút.
- Có thể được sử dụng nhiều lần trước khi hết hạn.
- Có thể bị huỷ bỏ trước khi hết hạn nếu một người dùng ứng dụng thu hồi quyền truy cập.
Token cập nhật - Làm mới một phiên đăng nhập. Một ứng dụng có thể sử dụng token cập nhật để nhận một bộ nhận mới, bao gồm một thẻ truy cập, một thẻ làm mới và một thẻ nhận dạng. Một token cập nhật:
- Hợp lệ trong 90 ngày.
- Chỉ có thể được sử dụng một lần trước khi hết hạn để cập nhật xu.
- Có thể bị huỷ bỏ trước khi hết hạn nếu một người dùng ứng dụng thu hồi quyền truy cập.
Token ID - Cung cấp bằng chứng rằng danh tính của một người đã được xác minh. Nội dung của nó phụ thuộc vào các hàng tương ứng được yêu cầu và có thể chứa các thông tin người dùng cơ bản, bao gồm tên hiển thị Roblox của người dùng và tên ngư
POST v1/token
Lấy một bộ dấu hiệu với một mã xác thực.
Yêu cầu
(x-www-form-urlencoded)
| Key | Value | | -------------- | đăng nhập | | code | <authorization code> | | code_verifier | <pkce code verifier value> | | grant_type | authorization_code | | client_id | <client_id> | | client_secret | 1> <
Yêu cầu Token Có thể lấy
curl --location --request POST 'https://apis.roblox.com/oauth/v1/token' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'client_id=840974200211308101' \--data-urlencode 'client_secret=RBX-CR9...St12L' \--data-urlencode 'grant_type=authorization_code' \--data-urlencode 'code=yCnq4ofX1...XmGpdx'
Phản hồi
Ví dụ: để lấy một câu trả lời Token
{
"access_token": "...",
"refresh_token": "...",
"token_type": "Bearer",
"expires_in": 899,
"scope": "universe-messaging-service:publish"
}
POST v1/token
Lấy một loạt các xu với một xu làm mới.
Yêu cầu
(x-www-form-urlencoded)
| Key | Value | | -------------- | đăng nhập | | grant_type | refresh_token | | refresh_ token | <refresh_token> | | client_id | <client_id> | | client_secret | <client_secret> |
Yêu cầu Token Cập nhật Ví dụ
curl --location --request POST 'https://apis.roblox.com/oauth/v1/token' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'grant_type=refresh_token' \--data-urlencode 'refresh_token=Ujfstayclfdlbm...BGydlsnU' \--data-urlencode 'client_id=840974200211308101' \--data-urlencode 'client_secret=RBX-CR9...St12L'
Phản hồi
Yêu cầu Token Cập nhật Ví dụ
{
"access_token": "...",
"refresh_token": "...",
"token_type": "Bearer",
"expires_in": 899,
"scope": "universe-messaging-service:publish"
}
POST v1/token/introspect
Nhận thông tin về một token. Xác minh apakah token hiện đang hợp lệ và chưa expired yet. Hữu ích cho stateless validation. Sử dụng chỉ nếu API bạn đang truy cập không yêu cầu tài nguyên, chẳng hạn như Assets API, hoặc nếu bạn chỉ muốn xem các tuyên bố cụ thể của token.
Yêu cầu
(x-www-form-urlencoded)
| Key | Value | | | đăng nhập | | token | <access_token> , <refresh_token> hoặc <id_token> | | client_id | 1> <client_id>1> |
Yêu cầu giao dịch token Introspect ví dụ
curl --location --request POST 'https://apis.roblox.com/oauth/v1/token/introspect' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'token=eyjlflabtfl...4gxqYBG' \--data-urlencode 'client_id=840974200211308101' \--data-urlencode 'client_secret=RBX-CR9...St12L'
Phản hồi
Trả lời thẻ Introspect Token
{
"active": true,
"jti": "RT.2GcjvTduKzk6QY9tjTfm",
"iss": "https://apis.roblox.com/oauth/",
"token_type": "Bearer",
"client_id": "840974200211308101",
"aud": "4239311013248676173",
"sub": "1516563360",
"scope": "universe-messaging-service:publish",
"exp": 1676394509,
"iat": 1660842510
}
POST v1/token/resources
Kiểm tra xem một token có thể truy cập một tài nguyên cụ thể bằng cách lấy danh sách nguồn lực lượng mà người dùng đã cho phép không. Điều này hữu ích cho kiểm tra trạng thái.
Yêu cầu
(x-www-form-urlencoded)
| Key | Value | | -------------- | đăng nhập | | token | <access_token> | | client_id | <client_id> | | client_secret | <client_secret> |
Yêu cầu giúp các nguồn lực xây dựng Token
curl --location --request POST https://apis.roblox.com/oauth/v1/token/resources' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'token=eyjlflabtfl...4gxqYBG' \--data-urlencode 'client_id=840974200211308101' \--data-urlencode 'client_secret=RBX-CR9...St12L'
Phản hồi
Giá trị U trong ids cho thấy rằng một khoản trang bị đã được cấp quyền truy cập một nguồn tài nguyên thuộc sở hữu của owner được đề xuất.
Trả lời tài nguyên Token cần thiết
{
"resource_infos": [
{
"owner": {
"id": "1516563360",
"type": "User"
},
"resources": {
"universe": {
"ids": ["3828411582"]
},
"creator": {
"ids": ["U"]
}
}
}
]
}
POST v1/token/revoke
Huỷ một phiên đăng nhập sử dụng token cập nhật được cung cấp.
Yêu cầu
(x-www-form-urlencoded)
| Key | Value | | -------------- | đối tượng | | token | <refresh_token> | | client_id | <client_id> | | client_secret | <client_secret> |
Yêu cầu thẻ Revoke Token ví dụ
curl --location --request POST https://apis.roblox.com/oauth/v1/token/revoke' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'token=Ujfstayclfdlbm...BGydlsnU' \--data-urlencode 'client_id=840974200211308101' \--data-urlencode 'client_secret=RBX-CR9...St12L'
Phản hồi
200 OK với một câu trả lời trống
Thông tin người dùng
GET /v1/userinfo
Lấy ID người dùng Roblox và các thẻ khác của người dùng.
Yêu cầu
Thẩm quyền đầu cuối : Authorization: Bearer <access_token>Yêu cầu thông tin người dùng
curl --location --request GET 'https://apis.roblox.com/oauth/v1/userinfo' \--header 'Authorization: Bearer eyjlflabtfl...4gxqYBG'
Phản hồi
Bạn có thể sử dụng giá trị sub để xác định người dùng một cách độc nhất. Người dùng có thể thay đổi tên người dùng Roblox của họ và tên hiển thị của họ, vì vậy đừng sử dụng chúng như những nhận dạng độc nhất để tham chiếu đến người dùng trên ứng dụngcủa bạn.
| Claim | Description | | đăng nhập | Roblox tên tài khoảnID. | | tên hiển th
Ví dụ Người dùng với phạm vi Hồ sơ
{
"sub": "1516563360",
"name": "exampleuser",
"nickname": "exampleuser",
"preferred_username": "exampleuser",
"created_at": 1584682495,
"profile": "https://www.roblox.com/ users/ 1516563360 / profile",
"picture": "https://tr.rbxcdn.com/03dc2a9abe7b1aacaaf93ea46d5c0646/150/150/AvatarHeadshot/Png"
}
Người dùng mà không có khoảng cảnh nhàn rỗi
{
"sub": "1516563360"
}
Khám phá
Tài liệu DiscoveryDocument OpenIDConnect (OIDC) là một tài liệu JSON chứa thông tin về cấu hình Open Cloud, bao gồm một danh sách các khoản và tuyên bố hỗ trợ được hỗ trợ. Bạn có thể sử dụng nó để tìm thông tin tạm thời về Open Cloud OAuth 2.0 endpoints và cấu hình, chẳng hạn như đi
Sau khi lấy và tìm kiếm DiscoveryDocument từ DiscoveryDocument URI, bạn có thể kiểm tra các trường trong câu trả lời để xác minh thông tin, hoặc bạn có thể tạo bản đồ thư viện tùy chỉnh của riêng bạn cho các trường trong câu trả lời để tự động hóa quy trình làm việc của bạn.
GET .well-known/openid-configuration
Phản hồi
Tất cả các câu trả lời của tài liệu khám phá đều tuân theo cùng một trình tư duy như câu trả lời ví dụ dưới đây.
Mẫu phản hồi tài liệu Discovery
{
"issuer": "https://apis.roblox.com/oauth/",
"authorization_endpoint": "https://apis.roblox.com/oauth/v1/authorize",
"token_endpoint": "https://apis.roblox.com/oauth/v1/token",
"introspection_endpoint": "https://apis.roblox.com/oauth/v1/ token/introspect",
"revocation_endpoint": "https://apis.roblox.com/oauth/v1/token/revoke",
"resources_endpoint": "https://apis.roblox.com/oauth/v1/ token /resources",
"userinfo_endpoint": "https://apis.roblox.com/oauth/v1/userinfo",
"jwks_uri": "https://apis.roblox.com/oauth/v1/certs",
"registration_endpoint": "https://create.roblox.com/ashboard/credentials",
"service_documentation": "https://create.roblox.com/docs/reference/云端",
"scopes_supported": [
"openid",
"profile",
"email",
"verification",
"credentials",
"age",
"premium",
"roles"
],
"response_types_supported": ["none", "code"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["ES256"],
"claims_supported": [
"sub",
"type",
"iss",
"aud",
"exp",
"iat",
"nonce",
"name",
"nickname",
"preferred_username",
"created_at",
"profile",
"email",
"email_verified",
"verified",
"age_bracket",
"premium",
"roles",
"internal_user"
],
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"client_secret_basic"
]
}