我创建了一个与PHP Web服务器通信的Android应用程序。他们都互相发送JSON。我的应用程序即将完成,但还有一件事要做:身份验证。
由于用户的用户名和密码将存储在Android SharedPreferences中,是否需要使用PHP会话,因为用户无需在每次请求时输入用户名/密码?
由于我可以在每个请求的HTTP POST标头中发送用户名和密码,并且我将使用SSL,这是否足够?我想我可以在名为'random'的标题中添加一个额外的字段,它只是添加一个随机值,只是用作盐,这样加密的SSL有效负载每次都会有所不同。
我不想使用会话的原因是我的Android应用程序要么必须处理cookie,要么管理会话ID的存储。
如果使用上述方法有一些严重的缺点,那么我非常乐意使用会话。
答案 0 :(得分:1)
就个人而言,我反对每次都在请求中发送用户名和密码。您可以做的一件事是在登录时生成一个唯一的ID,并将其存储在服务器上的数据库中,然后只传递它而不是用户名和密码。
答案 1 :(得分:0)
我相信你现在拥有的东西会很好。只要您确保安全地传输用户信息。盐是个好主意。这实际上取决于你想要它的安全性。
答案 2 :(得分:0)
在每个请求中发送帐户凭据都是非常糟糕的做法。 我认为使用Google OAuth2 API的更好方法是 - 非常简单且比本地帐户数据库更安全。你考虑过这个选择吗?
答案 3 :(得分:0)
我认为谷歌已经考虑了很多,所以做一些类似于他们所做的事情并不是一个坏主意。如果你看看他们做事的方式
https://accounts.google.com/o/oauth2/auth
尤其是他们的
https://accounts.google.com/o/oauth2/token
它可能感觉有些过分,但你可能会得到一些可能对你自己的实现有价值的想法。
编辑:oops,几乎忘记了文档链接:https://developers.google.com/accounts/docs/OAuth2