【问题标题】:Google Apps Domain-wide Delegation of Authority using javascript使用 javascript 的 Google Apps 域范围授权
【发布时间】:2012-11-04 01:23:29
【问题描述】:

谷歌文档 (https://developers.google.com/drive/delegation#instantiate_a_drive_service_object) 说:

For security reasons service accounts are not supported in client-side
Javascript. Service accounts for server-side Javascript is not yet
supported

我想知道有没有办法通过 php 来实现它。 下面的代码将描述我的想法。

<?php $token = generateToken() ?>

<script type="text/javascript">

  TOKEN = <?php echo $token ?>;
  startDriveRead(TOKEN);

</script>

用户定义的php函数generateToken()会做联合身份验证(有可能)并返回token(我不知道如何获取token)。

用户定义的 JavaScript 函数 startDriveRead() 将使用来自服务器端的令牌并访问驱动器数据(我不知道是否可能)。

【问题讨论】:

    标签: php javascript google-drive-api federated-identity google-api-js-client


    【解决方案1】:

    您是否考虑过使用异步工作的 javascript 控制器来回调服务器并在 php 中执行请求?在使用域范围的授权方法连接到 google 帐户时,我还没有看到一种获取可见身份验证令牌的方法。

    【讨论】:

    • 我认为会慢一些。该请求必须先发送到我们的服务器,然后再发送到谷歌服务器。如果您仅使用 javascript,则请求将直接发送到 google 服务器。我担心它会给服务器带来更多负载。
    • 是的,但看起来他们使用 php 会话作为身份验证过程的一部分。如果您的 php json 对 google 发回的对象进行编码,那么其余的想法可以很容易地在客户端完成。对于大多数进程来说,它的服务器负载非常低。尽管如果您正在执行大量大文件操作,则来回移动它们可能是一个问题。如果你是客户端,为什么不让用户通过 oAuth2 过程,然后你可以使用 javascript 库而没有太多麻烦。
    • 我的意图是避免 oAuth2 并利用“Google Apps 域范围的授权”
    • 而不是使用 php 客户端库来创建您的 JWT 并进行身份验证,如果您按照此页面上的说明进行操作,您应该能够获得一个令牌...一旦您拥有了,您可以查看是否将该令牌传递给 javascript 函数有效:developers.google.com/accounts/docs/OAuth2ServiceAccount
    • 我希望文档能帮助我。让我努力吧。完成后我会更新你。
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多