我正在为客户构建一个Web应用程序,我不确定我做的是正确的事情……

基本上,我创建了一个PHP应用程序,可以在Google上读取,编辑,删除日历,并在我自己的Web应用程序DB上保留一份副本(出于各种原因).现在,我读到了关于OAuth 2.0并意识到使用它比使用我的客户端常规Google密码(可以访问所有谷歌服务(日历,电子邮件等))直接在我的Web应用程序中使用PHP文件(在其他方面)更安全如果一个黑客进入服务器而不是他可以窃取她的密码……).

因此,我创建了OAuth 2.0帐户,从此页面添加了类/文件夹http://code.google.com/apis/calendar/v3/using.html#setup并在测试页面上添加了正确的脚本以“授权访问权限”对你的信息“(参见同一页面中的”实例化客户“)……

以下是我的问题:如果我使用我的登录信息(不是我的客户端)登录我的Gmail,并且我转到我的测试页面,它将要求我授权访问我的Google日历.但我想要我的客户的日历,而不是我的!所以,让我假装我退出,登录我的客户信息并转到测试页面:它是完美的,我授权帐户,然后我被重定向到我的应用程序,在那里我可以看到她的日历.

但这不符合实际或逻辑……例如,我希望她的GENERAL PUBLIC网站上的人们可以访问页面,并填写表格以自动完成约会.该脚本必须检查她的谷歌日历….并获得他们的Gmail帐户的许可?不,我想要她的日历.

所以这是我的问题/疑问.我究竟做错了什么?这是正确的方法还是我错过了一步?这个API是否意味着这样做?

如何使用API​​以上述方式工作?

谢谢大家点燃我的蜡烛

乔尔

如果我正确理解你,你就拥有了正确的身份验证.问题是您不想显示登录用户的日历;您想显示客户的日历.

用户可以在以下两种情况之一中写入日历:

>用户拥有日历,或
>所有者通过指定用户的电子邮件地址明确授予用户写入权限.

显然,第二种情况不会扩大.在任何一种情况下,您都需要在您的应用程序中嵌入客户端的凭据,然后使用它们代表经过身份验证的用户创建约会,或者与用户共享日历.当然,您需要加密客户端的凭据 – 不要简单地在应用程序中对其进行硬编码!

与使用客户的“真实”帐户相比,创建一个专门用于此日历的新帐户(具有唯一的电子邮件地址和密码)似乎更安全.然后,您的客户可以按照客户的意愿通过您的应用程序访问它,或者您可以与她共享日历并给予她写入权限.

另一种可能性是将日历设置为只读用户,而不是允许他们直接在客户的日历上创建约会,您的应用可以让他们请求约会:它会在用户的日历上创建活动并发送邀请到您客户的日历.那么您的应用程序将不需要任何嵌入式凭据.它还可以让您的客户有机会确认或拒绝每个约会,自动将她的回复发送给她的用户.另一个好处是每个用户的约会将出现在他/她自己的个人Google日历上.

我很想知道你(或其他任何人)是否找到了更好的解决方案.

php – 如何使用OAuth与Google日历仅访问一个日历?的更多相关文章

  1. ios – 签名无效:oauth_signature

    我正在尝试生成oauth_signature以使用FatsecretAPI,但是获得无效的签名错误–无法弄清楚原因.我尝试尽可能准确地遵循here所述的所有步骤(参见步骤2)来生成签名值.他们说:UsetheHMAC-SHA1signaturealgorithmasdefinedbythe[RFC2104]tosigntherequestwheretextistheSignatureBaseStr

  2. ios – Oauth突然无法使用iphone(仅安装了FS应用程序)

    我们的iPhone应用程序允许通过oauth通过Foursquare登录.它工作正常,最近停止工作.我们得到的错误是:连接失败:回调uri对此使用者无效.但是,如果用户没有在手机上安装foursquare应用程序,它可以像以前一样正常工作.似乎FS现在正在进行重定向来处理FS应用程序内部的oauth,并且在尝试返回到原始应用程序时失败.通过野生动物园它似乎工作.这是在ios9上.解决方案?

  3. iOS Swift在哪里存储用户登录数据或OAuth令牌?

    事情并不像在用户手机上存储登录数据的最佳做法那样清晰.有人建议将userID=123和loggedIn=true类型数据等数据存储在NSUSerDefaults数据中.然而根据我的理解,根据这篇文章https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/,这些数据可以很容易地被操作所以问题是:当用户浏览各种屏幕时,持久登录数

  4. ios – 使用带有OAuth 2.0的Google API在iPhone中登录Gmail

    我找到了Google提供的服务,可以访问各种Google服务的GoogleApi.我可以在iPhone中设置一个项目,并为iOS应用程序和本机应用程序创建API访问.我想为我的iPhone应用程序使用本机API.它API为我提供了电子邮件,全名,名字,姓氏,google_id,性别,dob,profile_image.如何在我的iPhone应用程序,任何示例应用程序,可用的代码段中使用这些?

  5. ios – 如何确定OAuth令牌是否已过期?

    我的iOS移动应用程序消耗使用OAuth2.0协议实现的服务.OAuth访问令牌带有刷新令牌和expires_in字段.我在我的应用程序中保存了刷新令牌并访问令牌过期时间,但是在使用它们时并没有什么好主意.>那么使用这个expires_in的通常和最佳做法是什么?>如何识别我的访问令牌是否过期?>是否有常见的Web服务错误格式,表示我的访问令牌已过期?

  6. ios – 在本地应用和网站之间共享凭据

    解决方法关联域和共享Web凭据在这里似乎不是一个好办法.你有两个选择:>将OAuth访问令牌作为URL-QueryString-Param传递给网页浏览器.https://x.y.z/?access_token=abc您必须操纵嵌入的URL,并确保您的后端了解这一点.很常见和容易的方法.许多网站像Facebook和Google正在URL中传递访问令牌.>如果您使用的是应用内浏览器,则可以截取URL请求并自行添加授权头.参见thisUIWebView和thisforWKWebView

  7. ios – 使用Firebase登录Facebook.找不到OAuth重定向URI

    我正在关注Firebase提供的手册.然而,我似乎无法做到的早期步骤.手册告诉我我在哪里可以在Facebook上找到这个设置?

  8. swift – SafariViewController:如何从URL获取OAuth令牌?

    非常感谢!

  9. Swift 3.0字符串连接离开“可选”

    “随你”有人见过类似的东西?

  10. android – 如何从应用程序本身禁用Google Fit并撤消权限

    我已经设置了连接到GoogleFit的应用,可以读取和写入有关用户身体的一些数据.当用户在应用设置中停用Google健身时,我会尝试通过以下方式撤消我的应用权限:即使我可以成功读取/写入数据,禁用Fit也会返回错误:Edit1:添加了整个方法,其中可见,该客户端在我尝试禁用Fit时连接.解决方法如果我撤消了操作的GoogleFit方面的访问而不是调用disableFit()方法,我遇到了这个问题.

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部