对这个问题的一般性质表示歉意。希望这不会被击落,因为太宽泛了#34;但是哦,好吧,这里有:
我正在编写一个纯信息(医疗信息)的React Native应用程序,后端有一个Rails API。
我遇到的第一个主要问题是,是否有必要(或好主意)使用身份验证。我们不希望用户输入任何信息来使用它(用户名,密码等)。他们应该只能下载应用程序并直接使用它并阅读它提供的信息。
但是,我认为我至少希望API只响应在React Native应用程序中点击它的人(或者不是吗?在API中完全公开API会被认为是正常的做法吗?像这样的应用程序的情况纯粹是信息,没有用户,如网站?)
第二 - 在某些时候,我们可能希望能够为该用户存储一些简单的偏好(IE,他们是患者还是医生,因此我们可以根据这些材料定制材料/将它们发送到不同的主屏幕当打开应用程序时)。想知道如果用户没有创建帐户,有人可能会使用什么策略来存储简单的偏好?
答案 0 :(得分:1)
我至少希望API只响应遇到它的人 来自React Native应用程序。
这可能无法完成,因为在移动应用中,每个人都可以访问您的客户端密码,并可以尝试对您的代码进行反向工程。 您可以通过在请求上向API发送动态生成的令牌来实现更加困难,例如,基于时间帧的哈希,并检查哈希是否以正确的方式发送。然后,您必须对代码进行模糊处理,以使某些人难以对其进行反向工程。
第二 - 在某些时候,我们可能希望能够存储一些简单的东西 对该用户的偏好(I.E.,他们是患者还是医生,所以我们 可以根据它定制材料/将它们发送到不同的家 打开应用程序时的屏幕)。想知道有人会采取什么策略 用户存储简单的首选项,如果用户没有创建 帐户?
如果您使用Parse Server实例作为后端,则可以从匿名用户功能中受益。当您使用Rails API时,您可以为应用的每个安装生成一个uuid,并根据该uuid保存数据库的首选项。如果您不需要存储在后端的这些首选项,只需通过AsyncStorage的任何抽象将您需要的任何信息存储在设备上。
答案 1 :(得分:0)
我真的不需要身份验证 - 没有用户。
我可以根据用户代理或硬编码密码验证数据来自我的应用。 SSL应该有助于保密。
但是,没有什么可以防止有人拆解应用程序并获取该信息。 @ felipe-martim关于生成动态令牌的好主意。
我真的只想防止基本的滥用,如果它曾经发生过,我可以解决这个问题,或者用机架攻击等方式保护自己。
在本地存储用户偏好应该适合本地偏好。
一句话就是,如果我需要/客户预算允许,我会处理这个问题!