gpt4 book ai didi

python - pmr2-oauth(plone 中的一个包)的内容类型范围管理器包含哪些内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:29 24 4
gpt4 key购买 nike

我正在尝试使用 plone 网站上的 pmr2.oauth 提供程序并使用 oauthV1 将我的自定义 api 连接到 plone 网站。从请求临时 key 到接收 oauth 访问 token ,一切都很顺利。

但是当我尝试访问资源时,我得到了无效的范围。我被告知要填写 pmr2.oauth 包中的内容类型范围管理器,我必须将以下每个门户类型的映射填写到允许的子路径列表:Plone 站点、集合、文件、文件夹、管理器文件夹、页面、页面和子网站。

但是我不知道这里要填写什么,所以我希望你们能帮助我。

最佳答案

这里的包所有者,首先我必须道歉并说我可能可以更好地记录这个(当然它是通过 doctests 记录的,但它可以做得更好)!

您需要填写的是您想要访问该特定内容类型的 View 。例如,如果您希望显示集合中所有项目的列表,您需要弄清楚 View 的名称是什么(在本例中为 atct_topic_view)。对于标准页面,它将是 document_view。也就是说,OAuth 通常针对通常通过更简洁的格式(例如 json)进行通信的 Web 服务,因此开发人员可以开发特定于某些现有(或自定义)Plone 内容类型的新 View ,然后可以将它们添加到要提供的映射。

最后,映射本质上是端点,加上一个可选的子路径(可以是通配符)。在撰写本文时,为自定义子路径指定通配符并不意味着根父 View 可用,因此假设您有一个自定义下载 View ,可以让用户列出链接到实际内容中的子路径的格式,您可能会做一些事情像这样:

Collection:

download_feed
download_feed/*

将在 Collection 内容类型中提供 download_feed View ,然后提供其中的任何子路径(通常通过为自定义 View 实现 zope.publisher.interfaces.IPublishTraverse 来提供)。

或者,您可以编写自己的 ScopeManager。只需创建一个从 pmr2.oauth.scope.BaseScopeManager (或 BTreeScopeManager)继承的类,实现所有方法(和测试),然后在代码中或使用 zcml 进行注册,如下所示:

<adapter
for="zope.annotation.interfaces.IAnnotatable
your.app.interfaces.IAppLayer"
factory="your.app.ScopeManager"
provides="pmr2.oauth.interfaces.IScopeManager"
/>

然后应该用您自己的范围管理器覆盖基于默认(门户)内容类型的范围管理器。

关于python - pmr2-oauth(plone 中的一个包)的内容类型范围管理器包含哪些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com