Kinto中的Firefox帐户支持

kinto-fxa的Python项目详细描述


Kinto中的Firefox帐户支持

traviscoverage /P>

kinto fxa 使用 Firefox帐户 OAuth2承载令牌。

< DL>
n.b.此项目以前称为"cliquet fxa",但已重命名为
kinto fxa 项目重命名为 kinto

它提供:

安装

正如官方文档中所述, Firefox帐户OAuth集成目前仅限于依赖Mozilla的服务。

安装python包:

pip install kinto-fxa

在项目配置中包含包:

kinto.includes = kinto_fxa

并使用 pyramidu multiauth配置身份验证策略 形式:

multiauth.policies = fxa
multiauth.policy.fxa.use = kinto_fxa.authentication.FxAOAuthAuthenticationPolicy

默认情况下,它将依赖于在 kinto 中配置的缓存。

配置

用在应用程序注册过程中获得的值填充这些设置:

fxa-oauth.client_id = 89513028159972bc
fxa-oauth.client_secret = 9aced230585cc0aaea0a3467dd800
fxa-oauth.oauth_uri = https://oauth-stable.dev.lcip.org/v1
fxa-oauth.requested_scope = profile kinto
fxa-oauth.required_scope = kinto
fxa-oauth.webapp.authorized_domains = *
# fxa-oauth.cache_ttl_seconds = 300
# fxa-oauth.state.ttl_seconds = 3600

如果应用程序不能作为relier(也称为oauth舞蹈 已禁用终结点):

fxa-oauth.relier.enabled = false

如有必要,覆盖身份验证策略的默认值:

# multiauth.policy.fxa.realm = Realm

处理多个FXA客户端

如果您想使用同一kinto在两个fxa应用程序之间隔离数据 用于同步其数据的服务您可以定义特定于客户端的 配置:

fxa-oauth.clients.notes.client_id = 89513028159972bc
fxa-oauth.clients.notes.required_scope = profile app-notes

fxa-oauth.clients.todo.client_id = 1805184631529d5a
fxa-oauth.clients.todo.required_scope = profile app-todo

根据请求的作用域,kinto fxa将分配用户id或 另一个(使用后缀):

< Buff行情>
  • fxa:{user_id}-notes 对于前者
  • fxa:{user_id}-todo 用于后面的

注意,您仍然可以使用 fxa:{user id} 在 特定FXA用户的应用程序。

如果你不给任何具体的许可,就不可能 有人使用其承载令牌中的 应用程序注释范围登录到 访问Todo应用程序数据。

默认存储桶也将被隔离,一个用于 notes 和一个用于 待办事项

登录流程

OAuth承载令牌

将OAuth令牌与此头一起使用:

Authorization: Bearer <oauth_token>
<表> < COL/> < COL/> <正文> 注意:如果令牌无效,将导致 401 错误响应。 <表>

使用Web UI获取令牌
  • 导航客户机到 获取 /fxa oauth/login?重定向=http://app endpoint/ 。 在那里,将设置会话cookie,并且客户端wi将被重定向到登录名 在FXA内容服务器上的表单;
  • 在登录页面上提交凭据后,客户端将 被重定向到http://app endpoint/{token}(web应用)。

获取令牌自定义流

可以使用 get /v1/fxa oauth/params 端点获取 配置,以便用 承载令牌 请参阅有关此行为的firefox帐户文档

$ http GET http://localhost:8000/v0/fxa-oauth/params -vGET/v0/fxa-oauth/paramsHTTP/1.1Accept:*/*Accept-Encoding:gzip, deflateHost:localhost:8000User-Agent:HTTPie/0.8.0


HTTP/1.1 200 OK
Content-Length: 103
Content-Type: application/json; charset=UTF-8
Date: Thu, 19 Feb 2015 09:28:37 GMT
Server: waitress

{
    "client_id": "89513028159972bc",
    "oauth_uri": "https://oauth-stable.dev.lcip.org",
    "scope": "profile"
}

脚本

kinto fxa库安装一个kinto fxa命令 用于运行kinto fxa附带的实用程序脚本 插件。现在唯一的一个是 处理帐户事件 侦听amazon sqs队列中的帐户删除事件并尝试 删除用户数据以符合GDPR。

这些脚本有一些附加的依赖项;您可能需要 pip 安装kinto fxa[脚本] 以安装它们。

要使用它们,请运行kinto fxa

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jboss LinkageError:加载程序约束冲突:解析重写的方法时   java Struts 1:如何使用表单bean设置<html:multibox/>值?   使用Fortify将字段设置为Null时的Java Null取消引用   用java对连接字符的图像进行分割   java无法使用Quarkus模拟,NullPointer异常,无法找到相关导入   html试图使iframe垫片与Java小程序上的CSS下拉菜单一起工作   java无法获取Base64。decodeBase64正常工作(Commons编解码器)   java为什么我不能通过点击打开jar文件?   java当用户第一次使用预先填充的sqlite数据库时,安卓应用程序如何添加新的列或表?   在tomcat中安装java GoDaddy SSL证书。。。没有与私钥匹配的证书   java试图实现一些伪代码、算法   java如何读取其他按钮id,避免所有转到第一个按钮   java使用单个   oop为什么Java Map不扩展集合?