小编The*_*ist的帖子

Google App Engine:使用自定义身份验证或Open ID时的端点身份验证

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

从一开始,GAE上的非Google身份验证机制似乎需要一些工作.我很感激到目前为止我发现的任何问题:

自定义验证

如果您可以将Open ID提供程序编写为应用程序的一部分,请使用类似Python-OpenID的内容,并在同一工作流程中实现使用者,以使其看起来像常规登录.这样,它可以很好地集成到GAE Users API提供的内容中.我猜这是否正确,users.get_current_user()将正常工作.

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

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

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

端点授权

在针对Endpoint-Proto-Datastore滚动API的方法装饰器中包含user = required时,OAuth似乎立即起作用 - 在API explorer中测试它时所要做的就是打开OAuth 2.0开关并选择一个有效的Oauth 2.0范围.那么这是否意味着如果我们实现一个与User API正确集成的OpenID提供程序,那么使用端点API的OAuth魔法是不够的?

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

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

openid google-app-engine oauth-2.0 google-cloud-endpoints

7
推荐指数
1
解决办法
2135
查看次数