Ana içeriğe geç

Oauth ile Kayıt Ol

Bu örnekte, Oauth ile nasıl kayıt olunacağını gösteriyoruz.

✅ Senaryonun Amacı:

  • Kullanıcı OAuth sağlayıcısı (Google, Facebook, vb.) ile kayıt olur.
  • Kullanıcıyı OAuth yetkilendirme kodu ile doğrulamak.
  • Başarılı OAuth akışından sonra doğrulanmış kullanıcı verilerini almak.

✅ İhtiyacınız Olanlar:

  • OneEntry API ile kimlik doğrulama için geçerli bir PROJECT_URL ve APP_TOKEN.
  • Google, Facebook veya başka bir sağlayıcıdan alınmış OAuth sağlayıcı kimlik bilgileri (client_id ve client_secret).
  • OAuth sağlayıcısından yönlendirme ile alınan yetkilendirme kodu.
  • OAuth sağlayıcısında kayıtlı olan ile eşleşen yapılandırılmış redirect_uri.

📌 Önemli:

  • Bu örnekler hata yönetimini içermez.
  • Hataları bir try-catch bloğu kullanarak veya await Promise.catch((error) => error) gibi bir yapı kullanarak yönetebilirsiniz.
  • updateUser() yönteminde kullanılan formIdentifier'ın OneEntry projenizde yapılandırılan ile eşleştiğinden emin olun.

Senaryo

1. SDK'dan defineOneEntry'yi içe aktarın ve url ile token'ı tanımlayın

Örnek:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. defineOneEntry() fonksiyonu ile bir API istemcisi oluşturma

Örnek:

const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. AuthProvider.oauthSignUp() ile kullanıcı kaydı

Veri:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Örnek:

const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
Sonuç:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.612Z",
"message": "İzin verisi bulunamadı. İstenen URL için izin sağlayın",
"pageData": null
}

4. AuthProvider.oauthSignUp() ile kullanıcı kimlik doğrulama

Veri:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Örnek:

const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
Sonuç:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.792Z",
"message": "İzin verisi bulunamadı. İstenen URL için izin sağlayın",
"pageData": null
}

5. Artık Users.getUser() ile kullanıcı verilerini alabilirsiniz

Örnek:

const userData = await Users.getUser();

Son örnek

// 1. SDK'dan defineOneEntry'yi içe aktarın, PROJECT_URL ve APP_TOKEN'ı tanımlayın
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Bir API istemcisi oluşturma:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. AuthProvider.oauthSignUp() ile kullanıcı kaydı
const body = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000"
};
const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
// console.log(JSON.stringify(signUpResponse));

// 4. AuthProvider.oauthSignUp() ile kullanıcı kimlik doğrulama
const authBody = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000"
};
const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
// console.log(JSON.stringify(authResponse));

// 5. Artık Users.getUser() ile kullanıcı verilerini alabilirsiniz
const user = await Users.getUser().catch((e) => e);
// console.log(JSON.stringify(user));