如何验证对 Piranha.WebApi 的调用?

Posted

技术标签:

【中文标题】如何验证对 Piranha.WebApi 的调用?【英文标题】:How to authenticate calls to Piranha.WebApi? 【发布时间】:2020-07-20 06:24:44 【问题描述】:

我的任务是通过其他 UI 项目将使用的 API 提供出色的 Piranha CMS。 Piranha 文档说,它的设计目的是“无头”运行,但没有太多关于如何运行的细节。

我正在运行 Piranha.WebApi 项目,它按我的预期提供页面的 JSON 内容。目前,它仅在我从浏览器访问它时才有效,因为对 WebApi 的任何调用都会提示输入凭据。登录后,WebApi 调用成功,我可以从同一个浏览器进行多次调用。

现在我需要知道其他 UI 代码项目在调用 WebApi 时如何进行身份验证,以便获得结果。

我查看了我能找到的链接;还没有好的提示:

https://piranhacms.org/blog/techniques-for-securing-pages https://github.com/PiranhaCMS/piranha.core/issues/841 https://github.com/PiranhaCMS/piranha.core/issues/546

任何建议都会很有帮助!

【问题讨论】:

【参考方案1】:

Piranha.WebApi 使用声明来验证调用者,但这些声明如何实际分配给用户取决于您。默认安全实现 Piranha.AspNetCore.Identity 默认配置基于 cookie 的安全性,但如果您只是以无头方式使用应用程序,则另一种安全设置可能会有所帮助。

更多关于如何配置身份模块的信息可以在这里找到:

https://piranhacms.org/docs/architecture/authentication/identity

另一种选择是只提供您自己的 Api,而不是使用 Piranha.WebApi 包。如果您在这里查看 Api 包的代码,您会发现这些端点中绝对没有逻辑,它们只是调用注册的 Piranha.IApi 对象。

https://github.com/PiranhaCMS/piranha.core/blob/master/core/Piranha.WebApi/PageApiController.cs#L45

最好的问候

哈坎

【讨论】:

Håkan 非常感谢您的快速回复!你的回复给了我很好的指导。是的,我正在编写自己的 api,但我想我会从你的开始着手。

以上是关于如何验证对 Piranha.WebApi 的调用?的主要内容,如果未能解决你的问题,请参考以下文章

nginx的问题。如何使用jwt(Django)对API进行身份验证调用?

如何验证和授权每个 WCF 调用?

Mockito:您如何验证某些方法调用组的组顺序?

如何从控制器调用身份验证 - 弹簧安全核心插件

身份验证 - 调用 $http 的 .then() 成功回调而不是错误回调

如何使用Facebook验证使用Cognito的API调用?