Ibm mobilefirst Worklight Online+;脱机身份验证
我正试图通过Worklight实现以下目标Ibm mobilefirst Worklight Online+;脱机身份验证,ibm-mobilefirst,worklight-security,Ibm Mobilefirst,Worklight Security,我正试图通过Worklight实现以下目标 我的应用程序有两套功能。只有当应用程序连接到服务器并且用户经过身份验证时,才能访问一组功能。另一组功能可以脱机访问,但它们需要来自加密JSONStore的数据 我在客户端设备上有一个JSONStore,它是使用密码初始化的。因此,存储中的数据将被加密。此外,此JSONStore通过适配器同步到服务器上的数据库 我还设置了另一个适配器,它通过使用存储在数据库中的另一组凭据对用户进行身份验证。只有当应用程序联机时,才能对用户进行身份验证 我想做的是统一这两
有什么建议或方法可以解决这个问题吗?以下只是一个想法,我不是安全专家 要求:
- 要使用脱机功能,您必须至少联机一次并通过身份验证
- 您的应用程序必须具有登录视图才能输入一些凭据(例如用户名/电子邮件和密码)李>
var myHash=md5(loginField.getUser()+loginField.getPassword())
。你可以找到李>
WL.JSONStore.init(…,{password:myHash})
李>
loginField=null;myHash=null
)。或者,您可以在服务器上生成散列并存储它,而无需客户端将其发送回,只需确保客户端和服务器使用相同的散列算法即可WL.JSONStore.changePassword(oldHash,newHash)
<强>可选:您可能想考虑使用。例如:
var salt=Math.random(),myHash=md5(loginField.getUser()+loginField.getPassword()+salt)
您需要将盐存储在某个地方,以便在用户返回应用程序后重新生成哈希。您应该能够初始化另一个未加密的存储来持久化它。例如
WL.JSONStore.init(…,{username:'metadata'})。然后(function(){/*addsalt to store*/})
。更多关于使用两家商店的信息。我认为这是一种足以解决我问题的好方法。当应用程序脱机时,用户无法更改其凭据,但可以。我个人认为Worklight应该为这个问题提供一个更优雅的解决方案。谢谢。你能告诉我如何从我的客户那里发送HTTPS请求吗?或者Worklight会自动通过HTTPS进行所有通信吗?如果您对HTTPS支持感兴趣,我建议您阅读正在使用的应用程序服务器的文档。例如:。