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为什么数组中的空格(“”)有错误?   java我需要一个正则表达式,它只接受一个字符串(只有字母和数字),在开头和结尾允许有空格,但不能在两者之间?   更改列表视图适配器后禁用java Fast scoll   java JTable在使用DefaultTableModel插入后未刷新   java这是在JavaFX中切换场景的正确方法吗?   java如何在GWT中清除根面板?   java如何正确使用加载数组和保存数组方法?   使用JavaMail API在电子邮件中单击链接   交互式Java程序   JavaSpring、Morphia和DataAccessException实现   JAVA试图用randoop生成单元测试的lang.IllegalStateException   Android上的javanio性能   java为列表添加值初始化列表大小   swing Java图形不在底部和右侧绘制   java如何调用scanDouble()方法?   java Android截击无连接错误   java正则表达式和AwkFilenameFilter   Asm api版本定义中的java按位OR运算符