使用 Express 会话反应本机身份验证?
Posted
技术标签:
【中文标题】使用 Express 会话反应本机身份验证?【英文标题】:React Native authentication using Express sessions? 【发布时间】: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 存储?非常感谢您的任何意见:)
【问题讨论】:
【参考方案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。以上是关于使用 Express 会话反应本机身份验证?的主要内容,如果未能解决你的问题,请参考以下文章