Kinto中的Firefox帐户支持
kinto-fxa的Python项目详细描述
Kinto中的Firefox帐户支持
kinto fxa 使用 Firefox帐户 OAuth2承载令牌。
< DL>它提供:
安装
正如官方文档中所述, 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