【问题标题】:Can I use python-social-auth in my `bottle app?我可以在我的 `bottle 应用程序中使用 python-social-auth 吗?
【发布时间】:2019-12-29 00:10:38
【问题描述】:

我要在我的网络应用程序中添加一个 SSO 按钮。

我想使用python-social-auth。但支持的 Web 框架是 Django、Flask、Pyramid、Tornado、CherryPy 和 webpy。好像不支持 Bottle 框架。

如何在我的 Bottle 应用中使用 python-social-auth

我应该创建自己的social-auth-app-bottle吗?

  • 如果不是那么简单的工作,哪个更好:
    1. 移至烧瓶
    2. 不要使用python-social-auth(并改用其他 Bottle 插件,例如bottle-rauthbottle-oauthlib 等)

【问题讨论】:

  • 看起来 python-social-auth 有其他框架的插件。您需要实现 social-auth-app-flask (github.com/python-social-auth/social-app-flask) 对 Flask in Bottle 所做的工作,但这可能比您计划的要多。听起来您现在可能不会太深入您的项目而无法切换。您的问题的性质向我暗示您可能想要考虑一个功能齐全的框架,例如 Django,但我对您的项目了解不足,无法提供进一步的建议。
  • 感谢您的建议。我用瓶子很多年了。我不想切换到另一个功能丰富的框架,比如 Flask。使用另一个 Web 框架重新实现我的项目比为它创建一个小瓶插件需要更多的工作。 Bottle + Authlib 怎么样?
  • 根据我的经验,Flask 相当小巧且易于移植,在您开始向其中添加中间件之前功能并不丰富
  • 我也是从 Bottle 开始的,当我发现自己重新发明了 flask 已有的东西时,我很快切换到了 flask。
  • 我同意你的看法。我个人使用过 Flask、Tornado 和其他一些框架。但我的项目从私人成长为团队合作。我项目的其他成员不想更改后端的 Web 框架。 Thqt 这就是我仍在寻找 Bottle 插件的原因。

标签: python single-sign-on bottle


【解决方案1】:

我使用来自 Google 的 firebase 来处理一切。它具有简单的 javascript 元素,可以将对象有效负载提供给您的后端。我使用bottle 处理一切。老实说,我发现 firebase 是管理登录的最简单、最可靠的方法。

import firebase_admin
from firebase_admin import credentials, auth as firebase_auth
cred = credentials.Certificate("<yours>-adminsdk-AAAAA-1234567.json")
firebase_admin.initialize_app(cred)

def checkToken(token):
    try:
        return firebase_auth.verify_id_token(token)
    except:
        return False

def login(payload):
    user = checkToken(payload['token']) or redirect('/logout')
    # <your code here>

【讨论】:

  • 感谢您的回答。过几天我会试试 firebase。
猜你喜欢
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 2013-05-08
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多