我正在尝试通过Worklight实现以下目标。
我想要做的是统一这两种方法,以便用户无需输入两组凭据即可访问这两组不同的功能。我想到的一个可能的解决方案就是加密JSONStore并在没有用户干预的情况下执行适配器身份验证。但我不认为这是安全的。
任何解决此问题的建议或方法?
答案 0 :(得分:2)
以下只是一个想法,我不是安全专家。
<强>要求:强>
<强>步骤:强>
var myHash = md5(loginField.getUser() + loginField.getPassword())
。你可以找到md5 JavaScript libraries on Github。 WL.JSONStore.init(..., {password: myHash})
。 loginField = null; myHash = null
)。或者,您可以在服务器上生成哈希并存储它,而无需客户端将其发回,只需确保客户端和服务器都使用相同的哈希算法。WL.JSONStore.changePassword(oldHash, newHash)
。 可选:您可能需要考虑使用salt。例如:var salt = Math.random(), myHash = md5(loginField.getUser() + loginField.getPassword() + salt)
。
您需要将salt存储在某处,以便在用户返回应用程序后重新生成哈希值。你应该能够启动另一个未加密的商店来坚持它。例如WL.JSONStore.init(..., {username: 'metadata'}).then(function(){/*add salt to store*/})
。有关使用两个商店的更多信息here。