Bu belgede, OAuth 2.0 kimlik doğrulama kodu akışını uygulamak için çağırdığınız sonuçların açıklanmasına ek olarak, kimlik doğrulamasını uygulamak için kullanışlı diğer sonuçlar açıklanmıştır.
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
İzin
GET v1/authorize
Roblox hesapoturum açmak için kullanıcının onayını alır. Belirli parametrelerle oluşturulmuş geçerli bir otorasyon URL'sini bekler. Bu nokta başvurusu destekler.
Sorgu parametreleri
İstek
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
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapBu noktadan sonra, kullanıcının code sorgu parametresindeki otorizasyon koduyla belirlenen yönlendirme URL'sine yönlendirilmesi sağlanır. Otorizasyon kodu:
- Bir dakikalık bir ömürü vardır.
- Sadece bir kez kullanılabilir.
- Bir kullanımdan sonra geçersiz.
Jeton Değiştirici
API'lere erişmek için jeton almak için, bir dizi gizli jeton için bir katılma kodu değiştirin. Tüm jeton uç noktaları iki tür klişbirliği destekler:
- İzin verici bir başlığı olan HTTP Temel Kimlik Doğrulama Scheme: Authorization: Basic Base64 encoded(<client_id>:<client_secret>) .
- İstek bedenindeki istemci kimliği ve gizem kaynağı parametre olarak.
Aşağıdaki liste, bu uç noktanından aldığınız çeşitli jetonları açıklar.
Erişim Simgesi - Bir üçüncü parti uygulamasının korumalı kaynaklarına erişmesi için bir yaratıcıdan veya kullanıcıdan bir otorizasyon alır. Bir kapsayıcıyı, ömür boyu ve diğer erişim özelliklerini temsil eden bir yapıdır. Bir Roblox otorizasyon sunucusu bir erişim jetonu oluşturduğunda jeton:
- 15 dakika geçerlidir.
- Süresi dolmadan önce birkaç kez kullanılabilir.
- Uygulama kullanıcısı onayı geri alırsa, bu geçersiz kılınabilir.
Yenileme Etiketi - Bir otorizasyon oturumyenilemez. Bir uygulama, yenileme etiketini kullanarak yeni bir set elde edebilir, bu da bir erişim jetonu, bir yenileme jetonu ve bir kimlik jetonu içerir. Bir yenileme jetonu:
- 90 gün geçerlidir.
- Jetonları yenilemeden önce sadece bir kez kullanılabilir.
- Uygulama kullanıcısı onayı geri alırsa, bu geçersiz kılınabilir.
Kimlik Jetonu - Bir kullanıcının kimliğinin doğrulandığını kanıtlar. İçeriği, istenen kapsayışa bağlı olarak kullanıcının Roblox görüntü adını ve kullanıcı adını içerebilir. Kimlik jetonu sadece kimlik doğrulama amaçları için sağlar ve Roblox kaynaklarına erişmez.
POST v1/token
Bir yetki koduyla bir dizi jeton elde edin.
İstek
(x-www-form-urlencoded)
| Anahtar | Değer | | -------------- | | | kod | <authorization code> | | code_verifier | <pkce code verifier value> | | grant_type | authorization_code | | client_id | <client_id> | | client_secret | 1> <common
Örnek Token İstek
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'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapÖrnek Alınan Jeton Yanıtı
{
"access_token": "...",
"refresh_token": "...",
"token_type": "Bearer",
"expires_in": 899,
"scope": "universe-messaging-service:publish"
}
POST v1/token
Yenileme jetonuyla bir set jetonu alın.
İstek
(x-www-form-urlencoded)
| Anahtar | Değer | | -------------- | ----------------- | | grant_type | refresh_token | | refresh_token | <refresh_token> | | client_id | <client_id> | | client_secret | <client_secret> |
Örnek Yenileme Token İstek
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'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapÖrnek Yenileme Token İstek
{
"access_token": "...",
"refresh_token": "...",
"token_type": "Bearer",
"expires_in": 899,
"scope": "universe-messaging-service:publish"
}
POST v1/token/introspect
Bir jeton hakkında bilgi alın. Token'ın mevcut olup olmadığını doğrular ve henüz mevcut değilse yeterli değildir. Statik geçerlilik için kullanışlıdır. Sadece API'ye eriştiğinizde kullanın. Sadece token'ın özel taleplerini görmek için kullanın.
İstek
(x-www-form-urlencoded)
| Anahtar | Değer | | -------------- | | | jeton | | <access_token> , <refresh_ token>] veya <id_ token> | | client_id | 2> <client_id>2> | | | client_secret |
Örnek Introspect Token İstek
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'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapÖrnek Introspect Token Cevabı
{
"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
Kullanıcının izin verdiği kaynaktara erişebileceğini test etmek için kullanıcının izin verdiği kaynaktar kullanıcının listesini alarak özel bir kaynağa erişip erişemediğini kontrol edin. Bu devlet doğrulaması için yararlıdır.
İstek
(x-www-form-urlencoded)
| Anahtar | Değer | | -------------- | | | jeton | <access_token> | | client_id | <client_id> | | client_secret | <client_secret> |
Örnek Almak İçin Token Kaynağı İstek
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'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapDeğer U``ids owner 1> erişim1> ile bir kaynağa erişim sağlandığını gösterir.
Örnek Alınır Token Kaynakları Yanıtı
{
"resource_infos": [
{
"owner": {
"id": "1516563360",
"type": "User"
},
"resources": {
"universe": {
"ids": ["3828411582"]
},
"creator": {
"ids": ["U"]
}
}
}
]
}
POST v1/token/revoke
Sunulan yenileme jetonu kullanarak bir otorizasyon seansını geri al.
İstek
(x-www-form-urlencoded)
| Anahtar | Değer | | -------------- | | | jeton | <refresh_token> | | kli_id | <client_id> | | kli_gizli | <client_secret> |
Örnek İptal Token İstek
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'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
Cevap200 OK ile boş bir yanıt
Kullanıcı Bilgisi
GET /v1/userinfo
Roblox kullanıcı ID'sini ve diğer kullanıcı metadatasını alır.
İstek
Yetkilendirme başlığı : Authorization: Bearer <access_token>Örnek Get User Info Request
curl --location --request GET 'https://apis.roblox.com/oauth/v1/userinfo' \--header 'Authorization: Bearer eyjlflabtfl...4gxqYBG'
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapKullanıcıyı eşsiz olarak tanımlamak için sub değerini kullanabilirsiniz. Kullanıcılar Roblox kullanıcı adını ve görüntü adını değiştirebilir, bu yüzden onları uygulamanızdaki kullanıcılar için benzersiz kimlik olarak kullanmayın.
| Al | Açıklama | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Profil Kapsülü Olan Kullanıcı Örneği
{
"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"
}
Profil Yoklu Kullanıcı Örneği
{
"sub": "1516563360"
}
Keşif
Açık Kimlik Doğrulama (OIDC) DiscoveryDocument, OpenCloud yapılandırmasıyla ilgili metadatolar içeren bir JSON belgesidir, bir liste gibi kimlik ilişkili alanları ve iddiaları destekleyen. Onu kullanarak, OpenCloud OAuth 2.0 uç noktaları ve yapılandırmasını, yani otoritezasyon noktası, jeton noktası ve halka anahtarı ayarlagibi,
Kaynağı Discovery belgesi URL'inden Discovery belgesi alındıktan sonra, verileri doğrulamak için alanları el動的 olarak inceleyebilirsiniz veya kendi özel kütüphane haritasını yanıt başlığına oluşturabilirsiniz.
GET .well-known/openid-configuration
Yanıtınızı Alınır. Bu, İşlemlerinizin Gizliliğini Korur.
CevapTüm Keşif Dokümanı yanıtları aşağıdaki örnek yanıtındaki aynı schema'yı izler.
Örnek Keşif Dokümanı Yanıtı
{
"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/資源"
"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"
]
}