我已经使用了一段时间的现有API(node + mongo + passport-local)。我有Users
模型和Posts
模型。使用邮递员,我可以注册,登录,创建/编辑/删除帖子。
Users
模型包含userid
,username
,displayname
,当然还有护照自动加密/哈希的密码。
Posts
模型包含postid
,userid
,title
,text
和creationdate
。
我想在我的react-native应用程序中使用这个现有的设置。所以,如果我在localhost:9000或其他东西上运行此API,并且我想在其上注册用户以及登录用户发布的任何新帖子,那可能吗?
我希望使用redux来管理我的用户状态。用户对象将初始化为null,因此如果为null,则显示登录页面。暂时忽略注册,因此如果用户输入用户名/密码并点击提交,则会触发userLogin操作,使用用户名/密码发送到localhost:9000/login
的POST,然后我收到回复,这会给我用户名并显示名称。用户对象已更新,并且由于它存在,用户将被路由到主应用程序页面。
我一直在尝试了解反应原生应用程序的用户身份验证,但到目前为止我发现的内容非常令人困惑。我尝试使用解析但在花了2个小时之后无法让它工作,说实话,我甚至不理解它。我只是想能够使用我的本地API并在本地测试。
由于
答案 0 :(得分:2)
你可以使用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,你会得到'然后'言。
根据回复,您可以更新商店中的状态以登录'我们已退出'。