thoughtbot: ورود با گوگل برای React Native
خلاصهٔ کاملتر
تیم thoughtbot کتابخونهٔ @thoughtbot/react-native-social-auth رو منتشر کرده؛ یه کتابخونهٔ تازه برای «ورود با گوگل» توی React Native که روی Credential Manager اندروید و نسخهٔ فعلی SDK یعنی GoogleSignIn-iOS بنا شده. به گفتهٔ تیم، این بسته یه کامپوننت دکمه که با قوانین برند گوگل جوره، یه پلاگین کانفیگ رسمی برای Expo و یه API تایپاسکریپتمحور داره.
راهاندازی مسیر اصلی همینقدر کوتاهه: کلاینتآیدی وب و آیاواس رو به configure میدی و بعد از GoogleSignInButton استفاده میکنی که با GoogleSignIn.signIn() یه credential همراه ایمیل کاربر برمیگردونه.
import {
GoogleSignIn,
GoogleSignInButton,
} from '@thoughtbot/react-native-social-auth';
GoogleSignIn.configure({
webClientId: 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
iosClientId: 'YOUR_IOS_CLIENT_ID.apps.googleusercontent.com',
});انگیزهٔ ساختش مدرنسازی خود گوگله. روی اندروید، API قدیمی GoogleSignInClient از Google Play services منسوخ شده و قراره حذف بشه؛ گوگل توصیه میکنه احراز هویت به Credential Manager منتقل بشه، یه API یکپارچه برای پسورد، پسکی و هویت فدرال. روی آیاواس هم نسخهٔ 8 پشتیبانی از Firebase App Check رو آورد و نسخهٔ 9 امکان دادن nonce دلخواه رو، که توکن هویت رو به همون درخواست ورود گره میزنه و جلوی حملهٔ بازپخش رو میگیره.
نویسنده میگه خیلی از کتابخونههای فعلی React Native هنوز به نسل قبلی APIهای اندروید یا نسخههای قدیمی SDK آیاواس وصلن. ممکنه جریان سادهٔ ورود باهاشون هنوز کار کنه، ولی اونایی که روی API منسوخ اندروید ساخته شدن بالاخره باید مهاجرت کنن و تا اون موقع هم از چیزهایی مثل شیت پایینصفحهٔ Credential Manager، ورود خودکار و مدیریت خطای ساختاریافته بیبهرهان.
نکات کلیدی:
- کتابخونهٔ @thoughtbot/react-native-social-auth روی npm و گیتهاب منتشر شده
- پایهش Credential Manager اندروید و SDK جدید GoogleSignIn-iOS هست
- دکمهٔ سازگار با برند گوگل، پلاگین Expo و API تایپاسکریپتمحور داره
- API قدیمی GoogleSignInClient منسوخ شده و در آینده حذف میشه
- App Check و nonce سفارشی، امنیت جریان ورود رو بالاتر میبرن




