oauth - 谷歌 API : How to authenticate without redirection?

标签 oauth oauth-2.0 google-docs-api

当我们的最终用户在我们的网站上执行某些操作时,我们希望使用 Google Doc API 生成文档(在我们自己的企业帐户中)。

问题是我们已经尝试实现 OAuth 2.0 协议(protocol),正如 v3.0 协议(protocol)文档中所建议的那样。 apiClient::authentication 方法进行重定向。这是一个主要问题,因为我们的用户不知道对我们自己的企业帐户的访问权限....而且我们也不想让他们访问;)

(换句话说,我们不是在创建一个允许我们的用户编辑他们自己的数据的应用程序,而是与我们的数据交互,就像一个数据库。)

我读过 OAuth 2.0 的目的是避免我们管理用户的凭据。我个人还可以。有了这个概念,但在我们的例子中,我们不想在我们用户的谷歌帐户中获得身份验证......

那么,在没有来自最终用户的任何交互的情况下获得有效身份验证的最佳方法是什么?

最佳答案

您所描述的不是三足 OAuth 的设计方式。

3-legged OAuth 是关于委托(delegate)身份验证的,用户(知道他的密码)可以授予对应用程序的有限且可撤销的资源访问权限。该应用程序永远不会看到用户的密码。安全地允许应用程序模拟用户涉及大量工作。

您可能想要的是使用(2 条腿)OAuth 流程,其中 consumer_id/consumer_secret 凭证嵌入在您的应用程序中。在这里,您的应用程序不会模拟您的最终用户,并且不会涉及浏览器重定向。

以下是有关在 Google Apps 中使用 2-legged OAuth 的更多信息:
http://googleappsdeveloper.blogspot.com/2011/07/using-2-legged-oauth-with-google-tasks.html

这是对 3 条与 2 条 OAuth 的一个很好的描述:
http://cakebaker.42dh.com/2011/01/10/2-legged-vs-3-legged-oauth/

关于oauth - 谷歌 API : How to authenticate without redirection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367449/

相关文章:

OAuth、Twitter 和身份 - 我是谁?

oauth - 如何为组织下的 github 企业创建 oauth2 token ?

oauth-2.0 - Google OAuth 同意屏幕不显示应用程序 Logo 仅显示域名

google-apps-script - 远程编辑谷歌文档

javascript - 通过 GAS 将存储在云端硬盘文件夹中的图像添加到 Google 文档

javascript - 自定义 Twitter oAuth 登录页面

node.js - 使用 accessToken 获取 Dynamics Organization Uri

google-apps-script - 用于从 Google 文档中删除多余空格的 Google Apps 脚本

php - 如何以安全的方式存储我客户的 API key ?

java - 是否可以在TokenEnhancer中获取ClientDetails