PropelAuth Python 版本

propelauth python 版本

今天,我们很高兴发布基础 python 库的新版本,以及针对 fastapi、flask 和 django rest framework 的框架特定库的版本。

让我们来看看一些较大的变化!

更好的打字支持(重大变更)

如果您之前使用过我们的 python 库,那么类型提示还有很多不足之处。在我们的最新版本中,我们现在为所有请求提供了类型提示,并为所有响应提供了数据类型。

PropelAuth Python 版本

立即学习“Python免费学习笔记(深入)”;

PropelAuth Python 版本

注意:如果您之前对响应进行解包(使用 ** 运算符),这将特别中断。响应以前是字典,现在是显式数据类型。

我们已经实现了常用的功能,例如键查找(response[“user_id”]仍然有效,但现在首选response.user_id)。我们通常会尽力避免重大变更(这是 3 年来的第二次变更),但这感觉像是一个非常狭窄的问题。

用户等级改进

为了更简单的权限检查,您现在可以直接在 user 对象上调用函数,例如:

user.has_permission_in_org(orgid, ‘can_export_reports’)user.is_role(orgid, ‘admin’)user.get_active_org().has_permission(‘api_key::write’)

这些允许您传递 user 对象,而无需引用 auth 对象,并且还可以更轻松地进行模拟/测试。

新 api

这并不是我们的 python 库特有的,但我们已经发布了许多新的 api,例如:

强制注销所有用户会话为您的客户创建 saml 设置链接(这将让他们自行管理 saml)获取和撤销待处理的邀请支持legacy_org_id,可以帮助您从现有设置迁移

请在此处查看我们的参考文档中的完整列表。

示例 – 通过定价计划轻松进行功能门控

在 propelauth,我们很幸运能够亲眼目睹许多 b2b saas 公司的成长。身份验证提供商在公司历史上的关键时刻最为重要(初始启动、吸引第一个客户、关闭第一个企业客户等)。随着你的成长,我们能做的最重要的事情就是让开。

这就是为什么我们对这个 fastapi 路线非常满意:

@app.post("/api/expensive-action")async def do_expensive_action(user: user = depends(auth.require_user)):    org = user.get_active_org()    if org == none or        not org.user_has_permission("can_do_expensive_action"):        raise httpexception(status_code=403, detail="forbidden")    return do_expensive_action_inner(user, org)

乍一看,这似乎是一条非常简单的路线,但它有一些重要的部分:

依赖注入的 user 适用于任何类型的经过身份验证的用户 – 无论是密码、sso、saml 等。通过角色映射,我们可以让免费计划中的组织管理员执行昂贵的功能,但付费计划中的组织管理员可以 采取昂贵的行动。我们可以通过处理来自我们的支付提供商的 webhook 并设置其角色映射来以编程方式强制执行此操作,如下所示:

@app.post("/stripe/webhook")def stripe_webhook(request):    event = parse_and_validate_stripe_webhook(request)    org_id = event["org_id"]    if event["type"] == Events.CUSTOMER_SUBSCRIBED:        # This can give the users in this organization access to increased        # permissions, additional roles, and access to more features        auth.subscribe_org_to_role_mapping(org_id, "Paid Plan")    elif event["type"] == Events.CUSTOMER_UNSUBSCRIBED:        auth.subscribe_org_to_role_mapping(org_id, "Free Plan")    # ...

我们甚至可以通过以编程方式生成 saml 连接 url,让他们自助访问 saml 和 scim 等高级功能,这将指导您的用户设置这些功能 – 为每个身份提供商(okta、azure ad)提供具体说明、adfs 等)。

最好的部分是什么?上面的相同代码片段将继续工作。即使我们客户的要求变得更加复杂,您的代码也不会。

问题?反馈?

我们一直致力于根据您的反馈来改进我们的图书馆和服务。如果您对此版本有任何疑问或对未来改进有任何建议,请随时与我们联系。

以上就是PropelAuth Python 版本的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1354333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 18:27:41
下一篇 2025年12月13日 18:27:53

相关推荐

  • 使用 YOLO 构建实时目标检测应用程序

    物体检测已成为人工智能最令人兴奋的应用之一,使机器能够理解和解释视觉数据。在本教程中,我们将逐步介绍使用 yolo(只看一次)算法创建实时对象检测应用程序的步骤。这个强大的模型可以快速准确地检测图像和视频中的对象,使其适用于从监控到自动驾驶车辆的各种应用。 目录 什么是物体检测?了解 yolo设置您…

    2025年12月13日
    000
  • 火柴棍压缩

    每周挑战 296 穆罕默德·s·安瓦尔 (mohammad s. anwar) 每周都会发出“每周挑战”,让我们所有人都有机会为两周的任务提出解决方案。我的解决方案首先用python编写,然后转换为perl。这对我们所有人来说都是练习编码的好方法。 挑战,我的解决方案 任务 1:字符串压缩 任务 您…

    2025年12月13日
    000
  • 使用 Python 和 OpenAI 构建国际象棋游戏

    只要周末有空闲时间,我就喜欢编写一些小而愚蠢的东西。其中一个想法变成了一款命令行国际象棋游戏,您可以在其中与 openai 对抗。我将其命名为“skakibot”,灵感来自“skaki”,希腊语中的国际象棋单词。 优秀的 python-chess 库负责所有的国际象棋机制。我们的目标不是从头开始构建…

    2025年12月13日
    000
  • Python日-重定义模块、While循环、Task

    预定义模块 sys 模块:(sys.argv) 在此模块中 sys.argv 用于将输出显示为 列表.例如:输入: import sysprint(sys.argv) 输出: guru@guru-aspire-a315-58:~/desktop/guru$ python3 user.py guru …

    2025年12月13日
    000
  • Pygame python 中的乒乓球游戏

    输入 import pygameimport sys pygame 是我们用来制作游戏的模块。它为我们提供了图形、声音等工具。 sys 是 python 中的一个模块,可以帮助我们与 python 解释器交互。 初始化 pygame.init() 初始化所有 pygame 模块并使其可供使用。 常数…

    2025年12月13日 好文分享
    000
  • 简单的力量:预测房价的线性回归

    房地产行业是世界上最多样化和最复杂的行业之一。了解房价是如何确定的可能是一个挑战,因为它取决于多种因素,例如房子的大小、卧室的数量、位置、车库的大小(如果有的话)等等。 但这一切真的会成为决定因素吗? 在本文中,我们将探索一个简单但强大的模型,线性回归,不仅可以帮助我们预测房价,还可以确定所提到的一…

    2025年12月13日
    000
  • 使用 OpenCv 制作简单的点画法

    简介开源计算机视觉库 (opencv) 提供免费的编程工具来处理图像或视频文件等视觉输入。它包含许多现成的函数,可以通过不同的编程语言访问。我在这里发布的示例使用 python。因此,如果你想理解代码,你至少需要有python和numpy的基础知识。如果您正在寻找 opencv 的介绍,此链接可能非…

    2025年12月13日
    000
  • 数据科学领域的顶级 Python 库是什么

    简介对于数据科学的初学者来说,了解顶级 Python 库可以帮助您取得良好的开端。班加罗尔的顶级 Python 培训 每个库都有特定的角色,可以更轻松地管理数据操作、可视化、统计分析和机器学习等任务。以下是每个数据科学初学者都应该了解的 10 个最佳 Python 库的介绍: NumPy简介:Num…

    2025年12月13日
    000
  • Mastering Async Context Managers: Boost Your Python Code&#s Performance

    python 中的异步上下文管理器是处理并发应用程序中资源的游戏规则改变者。它们就像常规的上下文管理器,但有一点不同 – 它们可以与异步代码无缝协作。 让我们从基础开始。要创建异步上下文管理器,我们需要实现两个特殊方法:__aenter__ 和 __aexit__。这些是我们在常规上下文…

    2025年12月13日
    000
  • Python&#s Gradual Typing: Flexibly Enhancing Code Safety and Performance

    python 中的渐进式输入对于像我们这样想要两全其美的开发人员来说是一个游戏规则改变者:动态灵活性和静态安全性。这不是选边站,而是选边站。这是为了找到适合我们项目的最佳点。 让我们从基础开始。 python 一直是动态类型的,这意味着我们不必声明变量类型。这为我们提供了令人难以置信的灵活性,但它也…

    2025年12月13日
    000
  • 日循环

    pycache: pycache 是由 python 创建的目录,用于存储 python 脚本的编译版本。这些文件具有 .pyc 扩展名,并在执行 python 脚本时自动生成。 *编程规则:*1) 已知与未知2)不要考虑整个输出3)只考虑下一步4)必要时引入变量5) 密切观察节目 编写一个程序来打…

    2025年12月13日
    000
  • Python Day-循环

    while 循环:示例:1 no = 1while no<=5: print(no, end=' ') no+=1 输出: 1 2 3 4 5 示例:2 1) 1 2 3 4 5 6 7 8 9 102) 1 2 3 4 5 6 7 8 9 103) 10 9 8 7 6 …

    2025年12月13日
    000
  • 有关如何有效提示 Amazon Q 的提示

    amazon q 是一款功能强大的工具,在代码生成、优化、故障排除和遵循 aws 最佳实践方面表现出色。为了充分发挥其潜力,您需要有效地构建提示。以下是如何有效提示 amazon q: 1。具体一点 通过提供详细且更有针对性的请求来避免模糊提示。具体可确保根据您的需求提供准确的响应。 • 示例: 而…

    2025年12月13日
    000
  • 使用 Python 为 Google Kubernetes Engine (GKE) 构建 Kubernetes 客户端

    这篇博文介绍了一种使用 python 为 gke 创建 kubernetes 客户端的有效方法。通过利用 google-cloud-container、google-auth 和 kubernetes 库,无论您的应用程序是在本地运行还是在 google cloud 上运行,您都可以使用相同的代码与…

    2025年12月13日
    000
  • 如何在 Google Colab 上运行 Samurai

    我的原始帖子https://baxin.netlify.app/how-to-run-samurai-on-google-colab/ 什么是武士? samurai:采用运动感知内存的零镜头视觉跟踪的分段任意模型 要求 google colab 的 google 帐户抱脸账号下载数据 如何在 goo…

    2025年12月13日
    000
  • 使用堆栈实现队列

    队列和堆栈是我们在日常编码中使用的相当简单的数据结构。事实上,它们可以被认为是维护数据最简单的结构。 在整篇文章中,我将使用 DS 来指代数据结构。 Queue是一个按照先进先出原则工作的DS。先来的数据被允许先出去。实现队列的方法有很多种。我们可以自由地使用数组、链表等。但在这里,我将讨论使用另一…

    2025年12月13日 好文分享
    000
  • python中decimal的作用

    Python中的decimal模块主要用于处理高精度的十进制数运算,特别适用于需要精确计算的场景,如财务和科学计算。‌ ‌Python中的decimal模块主要用于处理高精度的十进制数运算,特别适用于需要精确计算的场景,如财务和科学计算。‌ 主要作用和特点 ‌高精度运算‌:Decimal类型允许用户…

    2025年12月13日
    000
  • 如何创建云构建以允许 Docker 从 Artifact Registry 下载 Python 包

    google cloud 的 artifactregistry 是一个用于管理应用程序依赖项的强大工具。本指南演示如何创建 cloud build 管道以使 docker 能够访问存储在 artifactregistry 中的 python 包。通过执行以下步骤,您可以安全地管理依赖项并简化部署。 …

    2025年12月13日
    000
  • 自动执行日常任务的 Python 脚本

    每个人都必须拥有的收藏…… python 凭借其简单性和强大的库改变了我们实现自动化的方式。无论您是技术爱好者、忙碌的专业人士,还是只是想简化日常工作,python 都可以帮助您自动执行重复性任务,节省时间并提高效率。这里收集了 10 个基本的 python 脚本,可以帮助您…

    2025年12月13日
    000
  • 我新旅程的开始

    TL;DR – 这篇文章是我的公开日记,讲述了我为实现财务独立和心理成熟的目标而学到的知识。我希望你们支持我并分享您对这篇文章的建议/想法。 简介 大家好!我是一名学习 AIML 的学生。但我家现在的情况很糟糕,所以我决定开始做一份自由职业,因为我喜欢编码,同时辅导年幼的孩子以获得少量的…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信