1

我读过的很多关于如何构建 Marketplace 应用程序的文档都告诉我将 OpenID+Oauth 1.0 与 2-Legged 一起使用。但是阅读谷歌文档上有关身份验证的所有其他信息告诉我 OAuth 1.0 已被弃用,不应使用。

那么什么是正确的呢?我应该在 Marketplace 上使用 OAuth 1.0 吗?

PS:澄清一下,我将使用 Google Documents List API version 3.0 API,因为在 Drive SDK 上,基于文件的权限集是不可能知道用户的电子邮件的。在文件的权限集中,只有名称,但我需要用户的电子邮件。

谢谢,

4

2 回答 2

1

扩展 jonathanberi 的评论,

在这个答案中,谷歌已经弃用了 Oauth1 和 OpenId。Google 建议对所有市场应用程序使用 OAuth2,尤其是在新体验发布之后

这是一些示例代码

  def get(self, *args, **kwargs):

        code = self.get_argument('code', None)

        error = self.get_argument('error',None)

        redirect_uri = "{protocol}://{host}{path}".format( protocol = self.request.protocol,

                                                           host = self.request.host,

                                                           path = self.request.path)

        flow = OAuth2WebServerFlow(

                            client_id    = config['CLIENT_ID'],

                            client_secret= config['CLIENT_SECRET'],

                            scope        = 'https://www.googleapis.com/auth/userinfo.email',

                            redirect_uri = redirect_uri,

                            access_type  = 'online'

                        )
        if code is None:

            auth_uri = flow.step1_get_authorize_url()

            self.redirect(auth_uri)

        elif error:
            self.redirect("http://error.com")

        else:
            credentials = flow.step2_exchange(code)

            http = httplib2.Http()

            http = credentials.authorize(http)

            service = build('oauth2', 'v2', http=http)

            user = service.userinfo().get().execute()
于 2013-11-26T07:00:14.377 回答
0

使用 OpenID 的替代方法是让用户可以使用不同类型的帐户(如 facebook、google 等)登录您的应用程序。

https://developers.google.com/accounts/docs/OpenID?hl=en

如果您想提供这种可能性,您应该使用 OpenID,但如果您只想授予用户 gmail 帐户的权限,则应该只使用 OAuth 授权。

OAuth 1.0 自 2012 年 4 月起正式弃用https://developers.google.com/accounts/docs/OAuth

于 2013-01-20T02:30:34.093 回答