GAE团队发布新的OpenID 库- AEoid
程序员文章站
2022-03-24 17:21:20
...
近日,Google App Engine团队发布了一个新的OpenID库- AEoid,用于加快和简化OpenID身份验证的处理。AEoid目前还只是在首个alpha阶段。AEoid的目标是为了让用户快速入门,重点在于配置的优化。并不需要拥有任何OpenID的经验,可立即开始使用。
AEoid的接口与App Engine Users API非常相近:
from aeoid import users class TestData(db.Model): user = users.UserProperty() class TestHandler(webapp.RequestHandler): def get(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.url)) return logging.warn("Logged in as %s (%s)", user.nickname(), user.user_id()) data = TestData(user=user) data.put()
他们之间有些许差异。首先,你必须指定一个OpenID URL用以创建一个用户对象。通过OpenID endpoint来确定用户。由于昵称和电子邮件地址是用户产生的,他们没有确认或保证是独一无二的。 is_current_user_admin()并没有得到执行,app.yaml中的login: clauses并不受AEoid的影响,他们仍然使用常规的用户API 进行身份验证。
在您的应用程序在安装时,AEoid会使用WSGI中间件的一小部分。随着App Engine's built内置在web应用框架或任何其他框架内,调用run_wsgi_app功能,App Engine配置框架就可以用来安装AEoid。
from aeoid import middleware def webapp_add_wsgi_middleware(app): app = middleware.AeoidMiddleware(app) return app
框架并没有使用run_wsgi_app,需要在processing chain中插入一个中间件
application = webapp.WSGIApplication([ # ... ], debug=True) application = middleware.AeoidMiddleware(application)