我试图制作一个在线和离线运行的应用,但我希望我的用户经过身份验证或登录一次。因此,在初次登录后,我希望他们不能再次看到登录表单,我想向他们展示应用程序的新部分。他们应该只在他们决定退出时才能看到登录表单。我的问题是,如果他们总是在线但是他们也可能离线,我会更容易这样做,所以我只需要他们登录一次,下次他们启动应用程序时他们不会再看到登录表单而是他们会看到别的东西。
答案 0 :(得分:0)
没有离线身份验证。进行身份验证,以便服务器端确保它由给定的身份使用,因为您永远不会信任客户端。如果没有服务器端,则没有身份验证过程。
如果您只是想让用户使用您的应用程序,即使他在线,为什么在成功验证后您不在本地存储中存储用户配置文件的本地副本? (当然只有非关键数据)。 这样,您的应用程序可以依赖其内存来获取用户配置文件,而不是服务器在脱机时。
答案 1 :(得分:0)
您可以将一种“userIsAuthenticated”-Flag保存到本地存储空间(请参阅https://facebook.github.io/react-native/docs/asyncstorage.html)。
根据此标记,您可以决定用户在启动时看到的屏幕。
但要注意,如果网络连接(可能是3g / 4g不良导致)中断,它可能会让你的用户疯狂,如果他们一直都在重新登录。
如果用户处于离线状态,您还必须在线通知他们才能使用此应用。
BTW:要请求用户是否具有网络连接,您可以使用:http://facebook.github.io/react-native/releases/0.48/docs/netinfo.html#netinfo。
不要忘记在AndroidManifest.xml
中设置权限以允许使用该请求。