AWS - React Native - 注册、登录 - 在客户端和服务器端生成会话令牌

Posted

技术标签:

【中文标题】AWS - React Native - 注册、登录 - 在客户端和服务器端生成会话令牌【英文标题】:AWS - React Native - Sign-up, Sign-in - Generating Session tokens in both client and server side 【发布时间】:2021-11-15 05:27:21 【问题描述】:

我对应用程序开发相当陌生,但我已经准备好前端注册和登录表单,可以在 react native 中使用。我想将此数据从客户端发送到我的 AWS 服务器,以便为每个用户进行身份验证和创建会话令牌。我在网上只能找到将 Cognito 与 Amplify 一起使用。这不是问题,尽管我希望能够在客户端和服务器端访问会话令牌。 Amplify 可以做到这一点吗?

我过去曾在 AWS 上使用 express 作为 Websockets、Routes 和其他有趣的东西的反应服务器,并且希望再次使用它,因为我熟悉以这种方式处理后端逻辑。在那里,我假设我会从客户那里收到会话令牌,并与 Cognito/Amplify 的记录进行比较。如果会话令牌匹配,则从其他 AWS 服务(例如 S3、DynamoDB)中分发适当的资源,例如图像、字符串、视频等。 Express 将允许我以这种方式创建自定义 API 路由/URL。

这听起来像是一个好的计划,甚至是可行的吗?还有其他更简单的方法可以实现这一目标吗?很难筛选他们提供的所有文档。请告诉我!在此先感谢:)

【问题讨论】:

【参考方案1】:

您可以在注册过程后使用Auth. currentAuthenticatedUser 获取会话身份验证令牌并将其保存在前端。如果您要将其发送到后端,则需要在 Cognito 中创建 PostConfirmation 函数以获取访问令牌并将其发送到您的后端。

最好的方法是使用 Amplify 处理所有事情,如果您对 Express 更满意,我建议您在 Amplify 中创建一个 Rest API。他们将处理与资源访问相关的所有事情。

我建议您观看这个 Youtube 频道。他有非常整洁的教程。 https://www.youtube.com/user/boyindasouth

【讨论】:

非常感谢!听起来正是我正在寻找的。到目前为止,使用 cognito 放大前端身份验证是小菜一碟。他们让开发人员变得非常容易! 是的,学习曲线很艰难,但是一旦你适应了,就很容易了。我喜欢的一件事是 Amplify 可以帮助您了解 AWS 提供的不同服务,因此对于初学者来说是一个不错的选择

以上是关于AWS - React Native - 注册、登录 - 在客户端和服务器端生成会话令牌的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native 中使用 aws pinpoint 推送通知

AWS Amplify Auth Login 从 React Native 上的 React Native Webview

react-native-google-signin 与 AWS Cognito

如何使用 aws amplify 保持用户登录 react-native

如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?

Auth.signIn() 使用设备 - AWS Amplify 与 React-Native