gpt4 book ai didi

google-app-engine - 谷歌应用引擎 : Endpoints authentication when custom auth or Open ID is used

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:55 25 4
gpt4 key购买 nike

我最近开始使用 Google App Engine。我打算使用 Flask 来提供网页和 Endpoints API,最好使用 Endpoints-Proto-Datastore 来处理其他所有内容。

从一开始,GAE 上的非 Google 身份验证机制似乎需要一些工作。对于我目前发现的任何问题,我将不胜感激:

自定义身份验证

如果您可以将 Open ID 提供程序编写为应用程序的一部分,请使用 Python-OpenID 之类的东西,并在相同的工作流程中实现消费者,这样它看起来就像常规登录一样。通过这种方式,它可以很好地集成到 GAE 用户 API 提供的内容中。我猜如果这样做正确,users.get_current_user() 会正常工作。

如果您想跳过编写自己的 OpenID 提供程序,而是使用与 NDB 集成的 Flask-Login 编写电子邮件/密码身份验证系统,那也应该没问题。然而,GAE documentation 中的一个令人费解的信息说我可以像这样实例化一个用户对象:

user = users.User("XYZ@XYZ.com")

但是,(这里没有user.put()方法)users.get_current_user()仍然返回None。那么构造用户对象有什么用呢?

端点授权

在 Endpoint-Proto-Datastore 滚动 API 的方法装饰器中包含 user=required 时,OAuth 似乎可以立即工作 - 在 API 资源管理器中测试它时,您所要做的就是打开 OAuth 2.0 开关并选择一个有效的 Oauth 2.0 范围。那么,这是否意味着如果我们实现与用户 API 正确集成的 OpenID 提供程序,则仅使用 Endpoints API 的 OAuth 魔力还不够?

在这里,构建用户对象似乎也无助于满足身份验证要求。

自定义身份验证/另一个 OpenID 实现如何与 Endpoint API 身份验证/授权一起使用?

最佳答案

我不想使用 oAuth,而是使用用户/ token 的更简单的身份验证形式。

所以我所做的是创建一个映射到/_ah/spi/* 的自定义 ServletFilter 并从那里拦截来自 HTTPServletRequest 的登录信息,如果它是 Endpoint-API-Request。

到目前为止似乎工作正常,但我不确定这是否可行。但由于我在任何地方都找不到非 oAuth-Auth 的示例,这是目前我最好的选择。

很想从@bossylobster 或@Dan Holevoet 那里得到一些最佳实践提示。

关于google-app-engine - 谷歌应用引擎 : Endpoints authentication when custom auth or Open ID is used,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17155861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com