我有一个现有的 API(node + mongo + Passport-local),我已经使用了一段时间了。我有一个 Users
模型和 Posts
模型。使用 postman ,我可以注册、登录和创建/编辑/删除帖子。
Users
模型包含 userid
、username
、displayname
,当然还有护照自动加盐的密码/哈希值。
Posts
模型具有 postid
、userid
、title
、text
、和创建日期
。
我想在我的 react native 应用程序中使用这个现有的设置。那么,如果我在 localhost:9000 或其他东西上运行此 API,并且我想在其上注册用户以及登录用户发布的任何新帖子,这可能吗?
我希望使用 redux 来管理我的用户状态。用户对象将初始化为 null,因此如果为 null,则显示登录页面。现在忽略注册,因此如果用户输入用户名/密码并点击提交,则会触发 userLogin 操作,并使用用户名/密码向 localhost:9000/login
发送 POST,然后我得到回复给我用户名和显示名称。用户对象已更新,并且由于它存在,因此用户将被路由到主应用程序页面。
我一直在尝试了解 react native 应用程序的用户身份验证,但到目前为止我发现的内容非常令人困惑。我尝试使用解析,但花了 2 个小时后无法让它工作,老实说我什至不明白它。我只是希望能够使用本地 API 并在本地进行测试。
谢谢
最佳答案
您可以使用 fetch 来执行“GET”和“POST”请求。用户名和密码进入主体对象。例如:
fetch('http://localhost:9000/login, {
method: 'POST',
crossOrigin: true,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: email,
password: pw
})
}).then((r) => {r.json()})
.then((result) => {... do something with the result})
由于 fetch 返回一个 Promise,因此您可以在“then”语句中获得结果。
根据响应,您可以将商店中的状态更新为“已登录”或“已注销”。
关于mongodb - 如何在我的 React-Native 项目中重用现有的 API(mongo + Passport-local)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973462/