node.js - 用于授权从 React Native 应用程序到 Node 服务器的 API 调用的推荐策略是什么?

标签 node.js authentication react-native authorization

我有一个 React Native 应用程序,我想从中进行 API 调用。我对如何在 Node 后端授权这些调用感到困惑。

方法一:

用户登录应用程序并进行身份验证,然后我返回带有刷新 token 的 JWT。然后将其存储在客户端/ react native 应用程序中,并根据每个请求发送。如果 token 过期,则使用刷新 token 刷新。

方法2:

为每个客户端创建 API key 。当用户创建帐户时,我会创建一个 API key (或者可能像 AWS 那样的访问 key 和 secret key )并随每个请求一起发送。

这两种方法中有首选/推荐的方法吗?也许它们并不相互排斥?我是否仍然需要向我的 React Native 应用程序提供 API key ,以便它可以进行 API 调用,然后使用 JWT 来验证用户身份?

最佳答案

就我个人而言,

您可以选择方法 1,因为在客户端存储/创建 API key secret key 并不安全。 JWT更安全,您可以阅读以下article

方法 2 中,您很可能会尝试这种方法

根据客户端IP设备 token (无论什么适合您)生成Api key ,并设置包含AES技术的过期时间,然后在服务器上解密,根据请求者 IP 检查客户端 IP 以及过期时间

执行方法 2 的复杂性和时间方法 1 要多得多,还考虑到我可能没有涵盖所有内容安全用例

Do I still need to provide an API key to my react native app so that it can make API calls and then I use JWT for authenticating users

您可以正常进行http调用。推荐的方法是调用您的 token 生成 api,然后根据该 token 验证其他有值(value)的 api token 如果您使用JWT

希望有帮助。

关于node.js - 用于授权从 React Native 应用程序到 Node 服务器的 API 调用的推荐策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647644/

相关文章:

javascript - Gulp 如何知道异步相关任务何时完成(具体来说, 'gulp-connect' )?

python - 使用 Azure Python SDK 对用户进行身份验证的首选方式是什么?

javascript - 基于登录注销和表单提交响应条件渲染

javascript - 使用 javascript 的“电话”样式密码输入

android - TextInput 光标移动到显示/隐藏密码的开头

react-native - 更新由 : AIRMapMarker (React native) 管理的 View 的属性 'coordinate' 时出错

mysql - 使用 NodeJS 和 MySql 的 jQuery 数据表

node.js - 在没有 SSL 证书的情况下通过 Nginx 转发 HTTPS 流量

javascript - 如何在 Touchable 组件中包含 ScrollView?

javascript - 对象中数组的求和值