Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
App Check, çeşitli sağlayıcılar için yerleşik desteğe sahiptir: Apple platformlarında DeviceCheck ve App Attest, Android'de Play Integrity ve web uygulamalarında reCAPTCHA Enterprise (genel bakış). Bunlar, çoğu geliştiricinin ihtiyaçlarını karşılayacak iyi bilinen sağlayıcılardır. Ancak kendi özel App Check sağlayıcılarınızı da uygulayabilirsiniz. Özel sağlayıcı kullanmak şu durumlarda gereklidir:
Yerleşik olanlar dışında bir sağlayıcı kullanmak istiyorsanız.
Yerleşik sağlayıcıları desteklenmeyen şekillerde kullanmak istiyorsunuz.
Apple, Android ve web dışındaki platformları kullanarak cihazları doğrulamak istiyorsanız. Örneğin, masaüstü işletim sistemleri veya Nesnelerin İnterneti cihazları için App Check sağlayıcılar oluşturabilirsiniz.
Herhangi bir platformda kendi doğrulama tekniklerinizi uygulamak istiyorsanız.
Genel Bakış
Özel bir App Check sağlayıcısı uygulamak için Node.js Firebase Admin SDK'yi çalıştırabilen güvenli bir arka uç ortamına ihtiyacınız vardır.
Bu, Cloud Functions, Cloud Run gibi bir container platformu veya kendi sunucunuz olabilir.
Bu ortamda, uygulama istemcilerinizden kimlik doğrulama kanıtı alan ve kimlik doğrulama kanıtı, kimlik doğrulama değerlendirmenizi geçerse App Check jetonu döndüren, ağ üzerinden erişilebilen bir hizmet sunacaksınız. Kimlik doğrulama kanıtı olarak kullandığınız göstergeler, kullandığınız üçüncü taraf sağlayıcıya veya özel mantık uyguluyorsanız kendi oluşturduğunuz göstergelere bağlıdır.
Genellikle bu hizmeti bir REST veya gRPC uç noktası olarak kullanıma sunarsınız ancak bu ayrıntı size bağlıdır.
Müşterilerinizden kimlik doğrulama verileri alabilen, ağ üzerinden erişilebilen bir uç nokta oluşturun. Örneğin, Cloud Functions kullanma:
// Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckTokenexports.fetchAppCheckToken=functions.https.onRequest((request,response)=>{// ...});
Kimlik doğrulama verilerini değerlendiren uç nokta mantığına ekleyin. Bu, özel App Check sağlayıcınızın temel mantığıdır ve bunu kendiniz yazmanız gerekir.
İstemcinin kimliğinin doğrulanmış olduğunu belirlerseniz Admin SDK kullanarak App Check jetonu oluşturun ve bu jetonu ile geçerlilik bitiş zamanını istemciye döndürün:
constadmin=require('firebase-admin');admin.initializeApp();// ...admin.appCheck().createToken(appId).then(function(appCheckToken){// Token expires in an hour.constexpiresAt=Math.floor(Date.now()/1000)+60*60;// Return appCheckToken and expiresAt to the client.}).catch(function(err){console.error('Unable to create App Check token.');console.error(err);});
İstemcinin kimliğini doğrulayamıyorsanız bir hata döndürün (örneğin, HTTP 403 hatası döndürün).
İsteğe bağlı: AppCheckTokenOptions nesnesini createToken()'e ileterek özel sağlayıcınız tarafından verilen App Check jetonlarının geçerlilik süresini (TTL) ayarlayın. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri ayarlarken aşağıdaki dengelemeleri göz önünde bulundurun:
Güvenlik: Sızdırılmış veya müdahale edilmiş bir jetonun saldırgan tarafından kötüye kullanılabileceği süreyi kısalttığı için daha kısa TTL'ler daha güçlü güvenlik sağlar.
Performans: Daha kısa TTL'ler, uygulamanızın doğrulama işlemini daha sık gerçekleştireceği anlamına gelir. Uygulama onayı işlemi her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden kısa bir TTL, uygulamanızın performansını etkileyebilir.
Varsayılan TTL değeri olan 1 saat çoğu uygulama için uygundur.
Sonraki adımlar
Özel sağlayıcınızın sunucu tarafı mantığını uyguladığınıza göre, bu mantığı Apple, Android ve web istemcilerinizden nasıl kullanacağınızı öğrenin.
[null,null,["Son güncelleme tarihi: 2025-08-23 UTC."],[],[],null,["App Check has built-in support for several providers: DeviceCheck and App\nAttest on Apple platforms, Play Integrity on Android, and reCAPTCHA Enterprise\nin web apps ([overview](/docs/app-check)). These are well-understood providers\nthat should meet the needs of most developers. You can, however, also implement\nyour own custom App Check providers. Using a custom provider is necessary\nwhen:\n\n- You want to use a provider other than the built-in ones.\n\n- You want to use the built-in providers in unsupported ways.\n\n- You want to verify devices using platforms other than Apple, Android, and the\n web. For example, you could create App Check providers for desktop OSes or\n Internet-of-Things devices.\n\n- You want to implement your own verification techniques on any platform.\n\nOverview\n\nTo implement a custom App Check provider, you need a secure backend\nenvironment that can run the Node.js [Firebase Admin SDK](/docs/admin/setup).\nThis can be Cloud Functions, a container platform such as\n[Cloud Run](https://cloud.google.com/run), or your own server.\n\nFrom this environment, you will provide a network-accessible service that\nreceives proof of authenticity from your app clients, and---if the proof of\nauthenticity passes your authenticity assessment---returns an App Check\ntoken. The specific indicators you use as proof of authenticity will depend on\neither the third-party provider you're using, or the indicators of your own\ninvention, if you're implementing custom logic.\n\nUsually, you expose this service as a REST or gRPC endpoint, but this detail is\nup to you.\n\nCreate the token acquisition endpoint\n\n1. [Install and initialize the Admin SDK](/docs/admin/setup).\n\n2. Create a network-accessible endpoint that can receive authenticity data from\n your clients. For example, using Cloud Functions:\n\n // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken\n exports.fetchAppCheckToken = functions.https.onRequest((request, response) =\u003e {\n // ...\n });\n\n3. Add to the endpoint logic that assesses the authenticity data. This is the\n core logic of your custom App Check provider, which you will need to\n write yourself.\n\n4. If you determine the client to be authentic, use the Admin SDK to mint\n an App Check token and return it and its expiration time to the client:\n\n const admin = require('firebase-admin');\n admin.initializeApp();\n\n // ...\n\n admin.appCheck().createToken(appId)\n .then(function (appCheckToken) {\n // Token expires in an hour.\n const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;\n\n // Return appCheckToken and expiresAt to the client.\n })\n .catch(function (err) {\n console.error('Unable to create App Check token.');\n console.error(err);\n });\n\n | **Note:** If you encounter a token signing error while creating a new token, make sure your service account has the required permissions. See the [Admin SDK troubleshooting guide](/docs/auth/admin/create-custom-tokens#troubleshooting).\n\n If you can't verify the client's authenticity, return an error (for example,\n return an HTTP 403 error).\n5. **Optional** : Set the time-to-live (TTL) for App Check tokens issued by\n your custom provider by passing an `AppCheckTokenOptions` object to\n `createToken()`. You can set the TTL to any value between 30 minutes and 7\n days. When setting this value, be aware of the following tradeoffs:\n\n - Security: Shorter TTLs provide stronger security, because it reduces the window in which a leaked or intercepted token can be abused by an attacker.\n - Performance: Shorter TTLs mean your app will perform attestation more frequently. Because the app attestation process adds latency to network requests every time it's performed, a short TTL can impact the performance of your app.\n\n The default TTL of 1 hour is reasonable for most apps.\n\nNext steps\n\nNow that you've implemented your custom provider's server-side logic, learn how\nto use it from your [Apple](/docs/app-check/ios/custom-provider),\n[Android](/docs/app-check/android/custom-provider), and [web](/docs/app-check/web/custom-provider) clients."]]