【发布时间】:2015-07-17 09:33:16
【问题描述】:
我有一个部署到 Heroku 的 api。目前开放给大家看。我只希望已知的安卓手机能够修改和访问 api。
我不希望用户每次使用该应用时都必须登录。
我可以在手机上添加某种证书来验证它是否可信?
OAuth 是最好的方法吗?
有没有更好的方法让用户不必每次都登录?
【问题讨论】:
标签: heroku oauth credentials
我有一个部署到 Heroku 的 api。目前开放给大家看。我只希望已知的安卓手机能够修改和访问 api。
我不希望用户每次使用该应用时都必须登录。
我可以在手机上添加某种证书来验证它是否可信?
OAuth 是最好的方法吗?
有没有更好的方法让用户不必每次都登录?
【问题讨论】:
标签: heroku oauth credentials
这是一个相当广泛的问题(因此有几种方法)。在不了解您使用的语言/框架的情况下,也很难给出具体建议,但是:
您的服务器可以发出 cookie 或令牌,客户端可以在本地存储一段时间。这些令牌应包含时间戳并经过身份验证(使用进行 HMAC 身份验证的库)以防止客户端修改令牌。
客户端应通过 HTTP 标头或标准 Cookie 标头在对您的服务器的每个请求中提供此令牌或 cookie。
您将需要一个登录系统来支持令牌/cookie 的初始发行。
客户端还可以针对您的服务器(复杂)或针对外部服务(GitHub/Facebook/Google/Twitter)进行 OAuth,但您仍然需要一种方法来跟踪客户端上的状态(因此需要令牌/cookie)。
标准的 Android HTTP 客户端应包含 Cookie 支持,并且大多数服务器端框架都支持(或用于)经过身份验证的 cookie。
【讨论】:
django.contrib.auth(简单)或考虑来自 django-rest-framework.org/api-guide/authentication/… 的令牌身份验证