首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyramid_oauth2服务提供商文档或示例

pyramid_oauth2服务提供商文档或示例
EN

Stack Overflow用户
提问于 2012-08-01 23:58:46
回答 1查看 596关注 0票数 1

我需要在金字塔中做一个应用程序接口,我认为oauth2将是很好的实现,而不是重复发明轮子,已经安装了pyramid_oauth2包,但对文档或示例不确定。有人知道什么好的资源吗?如果是github项目或oauth2服务提供商的项目会更好。

EN

回答 1

Stack Overflow用户

发布于 2012-08-03 13:55:05

如果你说的是我的包,这里有一个来自我的网站的样本。它仍然是相当实验性的,但它应该与facebook和其他一些oauth2提供商合作。不幸的是,twitter实际上只有oauth1.0,这是一个问题。

因此,您需要像这样包含pyramid_oauth2

代码语言:javascript
运行
复制
config.include('pyramid_oauth2')

或在config.ini文件中。

然后,您可以在包含配置之后将其添加到其他位置:

代码语言:javascript
运行
复制
config.add_oauth2_provider(
    Provider(
        'vkontakte',
        'client_id',
        'client_secret',
        'https://api.vk.com/oauth/authorize',
        'https://oauth.vk.com/access_token'
    )
)

这将创建到/oauth/vkontakte/authenticate的路径。这是重定向流的请求开始的地方。然后,它将重定向到authorize url,并创建一个接收代码的/oauth/vkontakte/callback。然后,它将该代码发送回access_token路径。

如果有些东西不工作,可以随时报告一些问题,可以向Provider构造函数发送额外的参数,例如scope等。此时,这些参数将针对所有请求发送到服务器。

哦,你还必须向提供者提供一个回调函数。我将用一个带有回调等的例子来更新答案。

如果还不清楚,我可以用facebook制作一个小示例应用程序,并在今天或明天在github上进行推送。

回调只是一个接收requestdata的可调用函数,访问令牌应该包含在数据中。

我的想法是,如何获取访问令牌应该很简单,一旦收到访问令牌,就应该可以执行一些标准回调来注册到oauth api等。我相信,并不是每个人都在寻找oauth,只是为了验证facebook、connect等网站的身份。人们可能会对使用access_token而不仅仅是身份验证感兴趣。此外,由于金字塔与sqlalchemy和其他数据库无关,因此它不会强制执行任何内容。换句话说,用ZODB实现它,SQLAlchemy应该很容易。

我相信这个流程实际上非常简单,而且我实际上(我猜)还没有为当前的客户端流正确地实现oauth2。缺少一些属性,如grant_type等。它们可以作为额外的参数传递,但根据oauth2服务器的不同,它可能不会在所有地方都能正常工作。

顺便说一句,我希望将提供程序添加到ini文件中,以便可以从那里加载它们,而不是在代码中加载。这样你就能够为开发、生产等维护不同的应用程序了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11763115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档