【问题标题】:React Native authentication using Express sessions?使用 Express 会话反应本机身份验证?
【发布时间】:2022-01-18 23:57:56
【问题描述】:

我目前有一个使用 React 前端 + Express 会话后端进行身份验证和授权的 Web 应用程序。我想知道是否可以使用相同或相似的工作流程来验证移动用户。这就是我在 Web 应用程序中对用户进行身份验证的方式:

req.session.user = { id: user.rows[0].id }; // Set session cookie with user's ID
res.status(200).json({status: "success", message: "Login successful"});

这很简单。如果传递的登录凭据正确 - 我使用来自数据库的用户 ID 创建一个会话,并将成功返回给前端。

当使用 React Native 作为前端时,我可以做类似的事情吗?我是移动开发的新手,但移动客户端是否有类似于 Web 浏览器的 cookie 存储?非常感谢您的任何意见:)

【问题讨论】:

    标签: node.js react-native express authentication express-session


    【解决方案1】:

    是的,您可以使用 cookie 进行身份验证,我建议使用 fetch function 进行 http 请求。您需要通过access-control-allow-credentials 标头在服务器和客户端之间共享cookie。

    例子:

    var params = {
                method: "POST",
                headers: {
                    Accept: 'application/json',
                    'Content-Type': 'application/json',
                    'access-control-allow-credentials': 'true'
                  } 
            }
            params.body = JSON.stringify(body)
            const response = await fetch(url, params)
            const json = await response.json()
    

    【讨论】:

      【解决方案2】:

      使用这个库react-native-async-storage,从 react native 调用与从 react 和持久化数据完全相同的函数。

      【讨论】:

      • 你不需要任何库来存储cookie认证数据。
      • 你不需要任何库来调用后端方法,但标准方法是使用 axios。
      猜你喜欢
      • 2020-12-22
      • 1970-01-01
      • 2015-05-18
      • 2022-12-08
      • 2017-12-25
      • 2023-03-13
      • 1970-01-01
      • 2023-01-31
      • 2018-01-15
      相关资源
      最近更新 更多