Skip to content
imarch.dev
Блогқа оралу
· 2 мин оқу

Алты санның орнына бір басу

продукт oauth claude code flutter

Бүгін бесінші рет Planq-ты ашамын. Email теремін. Кодты күтемін. Алты санды көшіремін. Кіремін. Бір сағаттан кейін тағы. Email, код, алты сан. OTP жұмыс істейді. Бірақ күніне отыз сан - бұл кіру емес, рәсім.

Google OAuth - бір басып кіру

Не үшін қиындату

Google OAuth - жарты күндік интеграция сияқты естіледі. Firebase SDK, authlib, жаңа кестелер, миграциялар. Бірақ тоқтап, не керек екенін ойласаң - пайдаланушының email-і керек. Google оны береді. Email жүйеде бар. OTP мен Google - бұл сол email-дің иесі екеніңді дәлелдеудің екі түрлі жолы. Бір функция, басқа кіреберіс.

Backend-те екі роут. Біріншісі state генерациялайды, cookie-ге салады, Google-ға бағыттайды. Екіншісі callback қабылдайды, email алады, OTP-мен бірдей _authenticate_user() шақырады. Жаңа тәуелділік жоқ. httpx бұрыннан орнатылған. Он екі мың жолдық кітапхананың орнына үш HTTP-сұрау.

Frontend-те бір сілтеме. <a href="/auth/google">. JS SDK жоқ. Түйме мен OTP-форма арасында «немесе» бөлгіші. Басты, аккаунтты таңдады, іште.

Мобильді қосымша

Вебте бәрі қарапайым - cookies. Android-да браузердегі cookies қосымшаға қайтып келмейді. Басқа тетік керек.

Сұрауда бір параметр: ?platform=mobile. Backend оны state-ке сақтайды. Авторизациядан кейін cookies пен frontend-ке бағыттаудың орнына deep link жібереді: planq://auth/callback query-де токендермен. Қосымша оны ұстайды, сақтайды, ішке кіргізеді. Сол backend, сол ағым, соңында бір тармақталу.

Билд сынды. Жаңа AndroidX тәуелділіктеріне Gradle-дің жаңартылған нұсқасы қажет болды. Нұсқаны көтердім, жиналды.

Не жасамадым

Бір провайдер үшін кітапхана орнатқан жоқпын. ID Token-ді парсылаған жоқпын - server-side exchange-тен кейін userinfo API-ды сұрасаң болады, не керек. Деректер қоры схемасына тиген жоқпын. Аккаунттарды байланыстыру UI жасаған жоқпын. Бір email, бір пайдаланушы, кірудің екі жолы.

OTP қалды. Корпоративтік Google-да шектеулер болғандарға. Play Services жоқ мобильдіге. Қосалқы кіру ретінде.

Бірақ негізгі жол енді бір басу. Күніне отыз сан нөлге айналды.

Бөлісу:

Ұқсас мақалалар