react-native - 如何使用 PKCE 对 Expo React Native 应用程序进行身份验证并允许令牌刷新?
问题描述
我觉得我在这里错过了一个技巧。我们有一个托管的 Expo 应用程序,我们正在尝试根据 OIDC 身份提供者(在我们的例子中是 Cognito)对用户进行身份验证。
似乎我们有两个选择是expo-auth-session
要么expo-app-auth
。
似乎
expo-auth-session
它将支持 PKCE 流,但没有刷新令牌的机制。expo-app-auth
另一方面,确实有刷新令牌的机制,但似乎不支持 PKCE 流。
我不想增加令牌超时,因为这是一个安全风险。我也不想使用隐式流,因为这也是一个安全风险。
有一个针对 AuthSession 的开放 PR 来添加刷新令牌支持,但事实上库已经存在这么长时间而没有它,这让我想知道我是否遗漏了一些东西。
非常感谢任何帮助!
解决方案
AppAuth 支持 PKCE 和刷新令牌,从安全角度来看是最推荐的选项,但实施起来很棘手。在 React Native 中有一个AppAuth Bridge,尽管您可以使用原生移动技术有更多选择。
我有一些代码示例和博客文章强调了 AppAuth 的使用。每篇文章的步骤 8-10 演示 PKCE,步骤 15-16 演示令牌刷新:
推荐阅读
- java - 如何从 Java 访问 Kotlin 伴随对象
- jquery - 在元素处添加标签时,Html 不读取 html 标签
- java - 使用 @ElementCollection 和 @OrderColumn 注释的嵌入列表的错误顺序
- command-line - 修复命令行输出
- python - 如何在循环内创建一个计算值的numpy数组
- vue.js - Carrierwave:将图像从 vue front 上传到 rails api
- c# - 如何修复 Unity2D 中的错误(无法将方法组分配给隐式类型变量)
- dhall - 如何处理 dhall 中的枚举?
- asp.net-core - How to Fix "ERROR [IM002] [Microsoft][ODBC Driver Manager]" ASP.NET Core 2.2 on .NET FRAMEWORK
- raspberry-pi - 在树莓派上安装 Ravendb