【问题标题】:Perl Dancer Auth Solution that Supports API Keys?支持 API 密钥的 Perl Dancer 身份验证解决方案?
【发布时间】:2013-02-28 10:03:28
【问题描述】:

我有一个舞者网络应用程序,它既是网站又是网络服务;我的应用程序上的某些路由应该对其进行身份验证。

我为 Dancer 网络应用找到的所有身份验证解决方案都需要重定向到登录页面;虽然这对于交互式使用来说是可以的,但这对于一个安静的网络服务来说并不是最佳的。

是否有允许使用 api 密钥之类的身份验证解决方案?

【问题讨论】:

  • 我对 api 密钥了解不多,因此很遗憾无法为您提供帮助。 Dancer::Cookbook 中概述的身份验证方法提供了一个类似 REST 的简单 Web 服务,用于身份验证并将身份验证详细信息存储在 dancer 会话中。我已经在基于 REST 的客户端/服务器应用程序中成功使用了这样的策略。需要注意的关键一点是,您的客户端必须能够保留会话 cookie,并在身份验证后在请求标头中提供这些信息。如果您想了解更多详情,请告诉我。
  • 我认为使用会话/cookie 违反了 REST 的原则...
  • 我想这取决于你看到 REST 的原理。一个原则是创建无状态服务,是的 - 使用会话违反了这一点。但是,如果您将 REST 原则视为实用地使用已建立的 Internet 技术,那么会话和 cookie 会更有意义。一位同事向我建议的类似方法是在请求标头中传递用户名和密码哈希。然后,您可以使用 Dancer 在触发前处理该标头信息。这是一种不依赖 cookie 的无状态方法 - 但可能会使经过身份验证的服务的测试变得复杂。

标签: perl authentication api-key dancer


【解决方案1】:

您应该查看Dancer::Plugin::Auth::Extensible 来构建它。在每个请求中发送凭据的最简单方法。在客户端,您会像这样调用 REST 服务:

$ua->post('http://example.com/rest/getStuff?cred=foobar1234567, $search_criteria);

如果您这样做,您可以提供 cookie,但您不必这样做,客户不一定需要关心 cookie。

编辑:如果您想要基本身份验证,请查看Plack::Builder。您可以使用它为某些请求添加身份验证。

【讨论】:

  • 我和作者谈过那个模块;它会尝试使用所有请求重定向到 /login 表单(这对于 restful 网络服务来说并不容易)。
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 2013-07-04
  • 2017-12-19
  • 1970-01-01
  • 2022-07-27
  • 2019-09-04
  • 1970-01-01
相关资源
最近更新 更多