基于 Cookie 的身份验证和 Web API

Posted

技术标签:

【中文标题】基于 Cookie 的身份验证和 Web API【英文标题】:Cookie-based authentication and web API 【发布时间】:2014-05-28 17:21:53 【问题描述】:

我正在为我的服务构建一个公共 Web API。网页和原生移动应用程序(iosandroid 和 Windows 8)同样会使用它。

我应该使用基于 cookie 的身份验证吗?我的意思是,这是这种情况的最佳做法吗?

更多信息: 在对身份验证/授权/openId-connect 字段进行了一些研究之后,我意识到大多数事情都是由浏览器处理的,我的意思是,重定向、coockie 插入和相关的“样板”东西......当我想关于我必须在本地应用程序中复制的所有样板,我想知道该模型是否最适合移动应用程序。我的意思是,也许还有另一种更适合移动原生的方式...

Ps:我知道这还是有点笼统,只是我是安全领域的初学者,我仍然不知道如何正确表达我的怀疑/担忧/“懒惰”......

【问题讨论】:

请尝试添加更多详细信息。您是否已经研究过一些替代方案,以便您可以命名它们。您的应用程序有哪些个别特征。你需要为一个成功的问题付出更多的努力。 @AlojzJanez 看看...如果不够好,可以问我问题,以便我回答吗???我认为也许这样我可以更快地达到“富问题状态”...... 【参考方案1】:

API 本身应该是无状态的,并且不管理任何会话。对 API 的每个请求都应使用身份验证详细信息(例如 OAuth 令牌)。

如果网页和移动应用程序需要维护某种会话,那么应该由它们作为服务的客户端来维护该状态。例如,网页可能会为用户设置会话 cookie,但原生移动应用可能需要完全不同的方法。

另请参阅:If REST applications are supposed to be stateless, how do you manage sessions?

【讨论】:

以上是关于基于 Cookie 的身份验证和 Web API的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net core 3.1 保护 API 和 Web 应用程序

基于JWT的web api身份验证及跨域调用实践

(Monaca,Cordova)带有表单身份验证(Cookie)的 Web API 请求不起作用

适用于移动设备和 Web 的安全 API

使用 Spring Security 和 Redis 对带有 Java 配置的 RESTFul api 进行基于 Cookie 的身份验证

MVC .NET cookie 身份验证系统通过令牌身份验证访问 Web Api