【问题标题】:Authenticating Google Drive Request验证 Google Drive 请求
【发布时间】:2021-03-24 13:39:23
【问题描述】:

最终目标:我想重定向到 Google Drive api 链接以允许用户下载文件。 例如:http://example.com/redirect --> https://www.googleapis.com/drive/v3/files/?alt=media --> 用户文件下载

我正在尝试将用户重定向到可以下载文件的驱动器 api 链接,但要执行此操作,必须对请求进行身份验证。我知道这可以通过授权标头来完成,但众所周知,不可能通过重定向发送标头。如果有帮助,我正在使用 fastify 网络框架。

【问题讨论】:

  • 如果将文件设置为公开会怎样? #justcurious
  • 还是说需要认证。
  • 是的,我认为您将不走运,您将不得不授予用户对文件的访问权限。没有办法解决这个问题。云端硬盘并非旨在提供文件托管服务,类似的东西曾经是可能的,但 Google 已将其锁定。
  • 嗯,好吧,猜测它不可能通过重定向,当提供 auth 标头时文件下载正常。 Here 它说“可以将令牌作为 URI 查询字符串参数发送,但我们不建议这样做,因为 URI 参数可能最终出现在不完全安全的日志文件中”,显然这不安全,但我我很好奇这是怎么做到的。

标签: google-api google-oauth


【解决方案1】:

为了好玩,我只是尝试了类似的方法,基本上只是将访问令牌添加到请求的末尾。那里也没有骰子。

const access = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token
window.location.assign('https://www.googleapis.com/drive/v3/files/1v8QrAOxyC_5LQNovaq9XNALvnDocKeF6HxrrHPyWwRU?alt=media&access_token='+ access);

【讨论】:

  • 是的,我试过这个,但没有运气。同样的错误。如果您查看here,虽然它说可以通过 uri 参数进行身份验证,但它只是没有说明如何。
  • 在查询字符串中发送 access_token= 是通过 url 进行授权的公认方法。好的,为什么它可以与 webContentLink 一起使用? Google 必须添加一些内容以绕过该保护。
  • webContentLink 不是我想要的。 webContentLink 不是>25MB 文件的直接下载链接。我相信这是由于谷歌的自动病毒扫描。
  • 我正在尝试通过抓取确认码来使用网页内容链接。但是当这样做并提供访问令牌时,它仍然会提示登录。有什么想法吗?
  • Drive 并不是他们多年前杀死的托管服务
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多