Habilidades rn-auth
🔐

rn-auth

Seguro 🌐 Acesso à rede⚙️ Comandos externos🔑 Variáveis de ambiente

在 Expo 应用中实现 React Native 身份验证

React Native 身份验证需要仔细处理 OAuth 流程、安全令牌存储和会话管理。此技能提供经过实战检验的模式,用于实现 Google 登录、使用 SecureStore 存储令牌、使用 Expo Router 保护路由以及后端集成。

Suporta: Claude Codex Code(CC)
📊 70 Adequado
1

Baixar o ZIP da skill

2

Upload no Claude

Vá em Configurações → Capacidades → Skills → Upload skill

3

Ative e comece a usar

Testar

A utilizar "rn-auth". 如何在我的 Expo React Native 应用中实现 Google 登录?

Resultado esperado:

  • 使用 expo-auth-session 和 expo-web-browser 进行 OAuth 流程
  • 在模块级别调用 WebBrowser.maybeCompleteAuthSession() 以正确处理重定向
  • 使用 expo-secure-store 存储令牌(而非 AsyncStorage)
  • 获取用于设备的 iOS 客户端 ID 和用于后端验证的 Web 客户端 ID
  • 使用 AuthSession.makeRedirectUri() 处理 Expo Go 和独立构建
  • 在信任来自 OAuth 提供商的用户数据之前,使用后端验证令牌

A utilizar "rn-auth". 如何在我的 Expo Router 应用中保护路由,使未经身份验证的用户看到登录屏幕?

Resultado esperado:

  • 创建一个带有 useState 的 AuthContext 用于令牌和用户状态
  • 使用 useEffect 在应用启动时通过从 SecureStore 读取来恢复会话
  • 在根布局中使用 useSegments() 检查路由组来实现路由守卫
  • 当没有令牌且用户不在身份验证组时重定向到 /login
  • 在会话恢复进行时显示加载屏幕

Auditoria de Segurança

Seguro
v4 • 1/16/2026

This is a pure documentation skill containing only TypeScript/Python code examples. No executable code, scripts, network calls, file system access, environment variable reads, or external commands exist. All 42 static findings are false positives from pattern misidentification. The scanner misidentified library documentation references as security issues.

2
Arquivos analisados
435
Linhas analisadas
3
achados
4
Total de auditorias
Auditado por: claude Ver Histórico de Auditoria →

Pontuação de qualidade

38
Arquitetura
100
Manutenibilidade
87
Conteúdo
22
Comunidade
100
Segurança
91
Conformidade com especificações

O Que Você Pode Construir

向 Expo 应用添加 Google 登录

使用 expo-auth-session 实现 OAuth 流程,包括正确的令牌存储和会话持久化

构建需要身份验证的移动 API 客户端

创建经过身份验证的 API 客户端,自动附加令牌并使用刷新处理 401 响应

向 Expo Router 添加路由保护

实现身份验证守卫,在访问受保护屏幕时将用户重定向到登录页面

Tente Estes Prompts

基本 Google 登录
展示如何在我的 React Native Expo 应用中使用 expo-auth-session 实现 Google 登录。包括正确的重定向处理和令牌存储。
安全令牌存储
如何在 React Native 中使用 expo-secure-store 安全地存储和检索身份验证令牌?展示完整的实现。
受保护的路由
如何在 Expo Router 中保护路由,使未经身份验证的用户被重定向到登录页面?展示身份验证上下文和路由守卫实现。
带身份验证的 API 客户端
为我的 Expo 应用创建一个经过身份验证的 API 客户端,自动添加 Bearer 令牌,处理 401 错误,并在过期时尝试刷新令牌。

Melhores Práticas

  • 始终在模块级别调用 maybeCompleteAuthSession() 以正确处理 OAuth 重定向
  • 使用 expo-secure-store 存储令牌,永远不要使用未加密的 AsyncStorage
  • 在信任来自 OAuth 提供商的用户数据之前,使用后端验证令牌
  • 通过尝试刷新令牌或强制登出来处理 401 响应

Evitar

  • 在 AsyncStorage 中存储令牌 - 它未加密且任何应用代码都可访问
  • 跳过 maybeCompleteAuthSession() - 导致静默身份验证重定向失败
  • 使用 iOS 客户端 ID 进行后端令牌验证 - 始终在服务器端使用 Web 客户端 ID
  • 不处理 Expo Go 与独立构建的不同重定向 URI

Perguntas Frequentes

此技能是否适用于 Expo Go 和独立构建?
是的。使用 AuthSession.makeRedirectUri() 可自动为每个环境生成正确的重定向 URI。
支持哪些 React Native 版本?
此技能针对 Expo SDK 48+ 和 expo-auth-session 6+。与 React Native 0.73 及更高版本兼容。
如何与我现有的后端集成?
使用 authFetch 模式将 Bearer 令牌附加到请求。通过刷新令牌或登出来处理 401 响应。
我的身份验证数据是否安全存储?
该技能推荐使用 expo-secure-store,它使用 iOS Keychain 和 Android Keystore。永远不要使用 AsyncStorage 存储令牌。
为什么身份验证在我的应用中静默失败?
最常见的原因是在模块级别缺少 WebBrowser.maybeCompleteAuthSession() 调用。还要检查重定向 URI 是否匹配。
这与 Firebase Auth 相比如何?
此技能展示原生 OAuth 模式。Firebase Auth 提供更高级别的抽象,但需要 Firebase SDK 和 Google 服务。

Detalhes do Desenvolvedor

Estrutura de arquivos

📄 SKILL.md