我需要在我的Android应用程序中使用PHP会话吗


Do I need to use PHP sessions in my Android app?

我创建了一个与PHP web服务器通信的Android应用程序。它们都互相发送JSON。我的应用程序即将完成,但还有一件事要做:身份验证。

由于用户的用户名和密码将存储在Android SharedPreferences中,考虑到用户不需要在每次请求时都输入用户名/密码,是否需要使用PHP会话?

既然我可以在HTTPPOST头中为每个请求发送用户名和密码,并且我将使用SSL,这就足够了吗?我想我可以在标头中添加一个名为"random"的额外字段,它只添加一个随机值,用作salt,这样加密的SSL负载每次都会不同。

我不想使用会话的原因是,我的Android应用程序要么必须处理cookie,要么管理会话ID的存储。

如果使用上面的方法有一些严重的缺点,那么我非常乐意使用会话。

就我个人而言,我反对每次都在请求中发送用户名和密码。你可以做的一件事是在他们登录时生成一个唯一的ID,并将其存储在服务器上的数据库中,然后只需传递该ID,而不是用户名和密码。

我认为谷歌已经考虑了很多,所以做一些类似于他们所做的事情并不是一个坏主意。如果你看看他们进行的方式

  • 登录过程,即https://accounts.google.com/o/oauth2/auth

尤其是他们的

  • 令牌刷新,即https://accounts.google.com/o/oauth2/token

这可能感觉有些过头了,但您可能会提出一些对自己的实现有价值的想法。

编辑:哎呀,差点忘了文档链接:https://developers.google.com/accounts/docs/OAuth2

我相信你会对现在的一切感到满意。只要你确保用户信息被安全地传输。盐是个好主意。这实际上取决于你想要它的安全程度。

在每个请求中发送帐户凭据是非常糟糕的做法。我认为使用Google OAuth2 API的更好方法是非常比本地帐户数据库更简单、更安全。你考虑过这个选择吗?