4

如何向我的 REST 应用程序添加安全层,我可以控制我的服务器和客户端,我使用NANCY作为服务器,使用RESTsharp作为客户端。

如果 REST 支持是无状态的,我很难理解如何使调用安全。

谢谢

4

1 回答 1

4

Christian 的评论可能足以满足您的需要。它展示了如何将 Nancy 插件用于 Basic 或 FormsAuth,并且 RESTSharp 确实支持开箱即用的 Basic auth。

我已经在工作中构建一个 Nancy 驱动的 REST API 已经有一段时间了,我们使用 RESTSharp 和纯 HTML + JS 作为客户端,我们选择实现我们自己的基于会话的身份验证(部分是因为那些加载项我们实施时不存在)。然而,它的好处在于,无论客户端支持什么,它的使用都非常简单。我将快速解释它是如何工作的。

客户端发送他们的用户名和密码(或者如果你喜欢,标识符和密钥)以使用(使用 HTTPS)创建新的会话资源。POST /sessions此资源包含一个会话密钥,可用于后续调用。会话在 X 分钟不活动后过期。

对服务的每次调用都需要一个有效的会话密钥(创建会话除外)。密钥作为 cookie 或在查询字符串中提供。使用 RESTSharp 时,我们通常将其设置为 cookie,并继续重复使用它,除非它过期。

最后,可以通过调用来销毁会话DELETE /session/{key}

这是保护 REST API 的一种简单但有效(假设是 HTTPS)的方法。

或者,您可以实现 OAuth,RESTSharp 显然也支持开箱即用。

于 2011-12-23T17:49:23.550 回答