【问题标题】:Authenticate single user in Google Calendar api在 Google Calendar api 中对单个用户进行身份验证
【发布时间】:2013-07-23 09:19:08
【问题描述】:

我正在开发一个允许您使用 Google 的日历 API 安排活动的系统。但是,这将供小公司内部使用,他们只需要使用一个 Google 帐户(即整个公司的一个帐户),这样每个人都可以访问完全相同的事件。

我已经实现了日历 API 和日程安排功能(顺便说一句,在 PHP 中),但是在验证用户身份时,他们可以使用任何 Google 帐户登录,包括他们的个人帐户。他们应该只能通过公司帐户进行身份验证,这样活动就不会被安排到个人帐户中。

我想做的是检查经过身份验证的帐户的电子邮件地址,看看它是否与公司的电子邮件地址匹配,如果不匹配,则会显示错误,告诉他们他们使用了错误的帐户。

这可行,但它似乎是一个非常低效且丑陋的解决方案(特别是考虑到我可能需要使用 Google+ API 来获取他们的电子邮件地址)。

推荐的方法是什么?

【问题讨论】:

    标签: php oauth-2.0 google-calendar-api google-oauth


    【解决方案1】:

    如果您使用 Google 的 OAuth2 机制进行身份验证,您实际上必须在 Google API 控制台 (https://code.google.com/apis/console) 中注册您的应用,并向您的应用提供客户端密码、客户端 ID、授权 URI 等。在这种身份验证机制下,您的用户别无选择,只能使用在 API 控制台中注册的帐户进行身份验证,因此他们使用“其他”帐户进行身份验证是没有问题的。

    Google 关于使用备用(非 OAuth)身份验证方式的建议如下:

    AuthSub 和 ClientLogin 是 Google 的专有授权 API,可作为大多数 Google API 的 OAuth 替代方案。如果可能,您应该避免使用这些服务。如果您已经有使用它们的应用程序,则应迁移到上述推荐选项。

    https://developers.google.com/gdata/docs/auth/overview

    此外,“ClientLogin”和“AuthSub”实际上已被弃用:

    重要提示:ClientLogin 已于 2012 年 4 月 20 日正式弃用。它将根据我们的弃用政策继续工作,但我们建议您尽快迁移到 OAuth 2.0。

    https://developers.google.com/accounts/docs/AuthForInstalledApps

    重要提示:AuthSub 已于 2012 年 4 月 20 日正式弃用。根据我们的弃用政策,它将继续工作,但我们建议您尽快迁移到 OAuth 2.0。

    https://developers.google.com/accounts/docs/AuthSub

    我的建议是迁移到 OAuth2,问题就会自行解决。如您所说,如果您使用的是两种已弃用的方法之一,那么您很可能必须制定自己的“非常低效且丑陋的解决方案”。

    Google 日历文档实际上相当广泛:https://developers.google.com/google-apps/calendar/

    它们真的很容易吗?不,但他们不是稀缺的一件事。 PHP 客户端库在这里:

    https://code.google.com/p/google-api-php-client/

    这里有一个 PHP 示例:

    https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/calendar/simple.php

    请注意,大多数 Google 日历文档都假定使用 OAuth2。

    【讨论】:

    • 保罗……如果你还在的话……我很乐意向你提出问题……重新 OAuth2 和谷歌日历。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2013-03-11
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多