社交登录:React Native + Django Allauth
我是用Django后端在开发一个React Native移动应用。我想使用django-allauth的 headless模式来完成认证。
我看过React SPA的官方示例,但那个示例使用代理(Traefik)让前端和后端保持在同一个源。由于我在开发移动应用,遇到了跨域的场景,应用和API位于不同域名。在这种情况下,我还不清楚该怎么解决。
应该如何配置 HEADLESS_FRONTEND_URLS 设置,以允许来自我的React Native应用的Google验证?我在Google Cloud Console中创建的OAuth token应该是 "Web application" 还是 "Android/iOS"?
到目前为止,我已经让allauth与常规认证一起工作,可以请求各个提供商等。
解决方案
与Web不同,React Native没有浏览器基于的cookies、会话等概念。
大多数基于浏览器的认证策略在React Native中并不奏效。它们依赖 Fetch API 在服务器端发起请求,你应该为此对后端进行优化。
第三方提供的认证服务,如 Login With Google 或 Apple Sign-in,都提供了各自的原生实现,以符合各移动平台厂商(Apple与 Google)的要求。
你需要把认证放在 OAuth2 的上下文中来考虑,而不仅仅局限于某个Django的实现。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。