我想在 Azure 上托管一个 MVC 4 Web API 项目。我需要确保可以从任何第三方应用程序和任何浏览器访问 API。实现一个简单地返回 JSON 的 RESTful API 对我来说是个好主意。现在,对我来说最大的挑战是创建与平台无关的身份验证机制。我不想使用默认的 MembershipProvider。我将使用 SSL。我也不会使用 FormsAuthentication。所有 API 调用都将通过 JQuery/AJAX。
我正在尝试了解基于令牌的身份验证。这是我认为我可以做的: - 客户端通过 HTTPS 将他们的用户凭据发送到服务器 - 服务器对客户端进行身份验证,创建令牌,将其连同日期时间戳和到期期限一起保存到数据库,然后将其发送回客户端 - 客户端每次访问 API 时都会将令牌发送到服务器
现在,我不明白的部分是,客户端将令牌存储在哪里?它是否保存在 cookie 中?如果是这样,非浏览器第三方应用程序在哪里保存身份验证令牌?代币被盗有多容易?