所以 AppEngine 使与 Google 帐户相关的东西变得非常容易(惊喜 :) )。看看这里的文档https://developers.google.com/appengine/docs/python/users/overview。这解释了用户服务,您可以在其中请求用户使用其 Google 凭据登录。例如(直接来自文档):
from google.appengine.api import users
from google.appengine.ext import webapp
class MyHandler(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
(user.nickname(), users.create_logout_url("/")))
else:
greeting = ("<a href=\"%s\">Sign in or register</a>." %
users.create_login_url("/"))
self.response.out.write("<html><body>%s</body></html>" % greeting)
这会检查用户是否使用他们的 Google 帐户登录,如果没有则向他们显示登录 URL。执行“魔术”的部分是users.create_logout_url('/')
和users.create_login_url('/')
方法。他们创建了一个指向用户可以登录的特殊 URL 的链接(您无需进行任何额外的格式化/编码)。然后将它们重定向回您的站点(“/”将它们发送到您的主页,但您可以更改)。希望这可以帮助!
编辑:正如@Wooble 指出的那样,这不会授予您的应用程序访问用户数据的权限 - 它只会根据用户服务提供的信息为您提供一些关于用户的基本信息。为了允许您的应用程序访问 Google Drive 数据,@SebastianKreft 提供的链接显示了一个执行身份验证的示例应用程序。可以在此处找到有关将 OAuth 与 Drive 结合使用的其他一般信息。简而言之,用户需要授予您的应用程序访问其数据的权限,并且它通过 OAuth 令牌执行此操作(请参阅文档以获得比我能给出的更好的解释)。