我有一个PHP网站,就像其他一些用户向我的YouTube频道提供视频一样。我已成功设置OAuth和Google API,以便将该网站上的视频上传到我的YouTube频道。
我面临的问题是,我必须授权从网站上传每个会话。因此,当我将链接提供给其他人并要求他们上传时,他们将无法绕过OAuth并上传。 (我无法提供证书)。
我浏览了Google OAuth的PHP文档,但它并不是很清楚。我有点猜测我们必须在初始身份验证期间存储令牌,然后将其用于进一步操作,但无法弄清楚如何做到这一点。有关如何执行此操作的任何帮助/摘要?
答案 0 :(得分:2)
OAuth 2.0 server-side flow独立于YouTube API中的实施,在资源所有者(= channel owner = you,在本例中)进行适当的身份验证和授权后,将返回两个令牌。这两个令牌是:
只要服务器应用程序至少跟踪刷新令牌(因为它可以随时获取新的访问令牌),它就能够查询API而无需资源所有者的连续授权(直到资源所有者手动撤销应用程序对资源的访问权限。
此时,任何拥有有效访问令牌的人都能够代表资源所有者(在他已经许可的范围内)执行操作。如果您希望用户能够从他们自己的计算机直接上传到您的频道,理论上可以为他们提供访问权限和刷新令牌。然而,这个程序有一些缺点:
首选解决方案是实施您自己的身份验证机制,以保护对您的应用程序的访问,从而可以访问您的频道。我没有使用YouTube Data API v3上传视频的经验,因此我能想到的唯一方法是用户将视频上传到您的服务器,然后将其转发到YouTube的上传服务器。这当然意味着所有流量都通过您的应用服务器进行路由,这显然并不完美。但这是另一个问题的另一个问题。