我今天刚拿起Google API,允许我们网站的某些用户将视频上传到我们自己的组织YouTube帐户。我不希望我们的用户知道我们的用户名和密码,但如果他们想要将视频上传到youtube,请给他们选择。如果他们选择这样做,他们会勾选复选框并点击提交按钮。
我一直看到,在开发人员指南中,ClientLogin对我来说看起来是实现我想要做的最佳选择,对于Web应用程序中的用户身份验证来说不是一个好主意。 “Web应用程序的AuthSub”似乎不是我想要实现的最佳机制!
关于该怎么做的任何想法?
谢谢
答案 0 :(得分:3)
在使用谷歌API和其他视频服务提供商API后,我学到了很多关于身份验证的知识。 oAuth和AuthSub是谷歌用于向用户帐户验证第三方Web应用程序的两种方法。
这个过程起初可能看起来很混乱,但一旦你理解了它,它就不会太糟糕。下图显示了AuthSub进程。
http://code.google.com/apis/accounts/docs/AuthSub.html#AuthProcess
当您要求进行身份验证并且用户登录他/她的Google帐户时,在他/她授予您的应用程序许可在其帐户中执行操作之前,并且如果您的域名尚未向Google注册,则该用户会得到一个讨厌的红色框,告诉他们要小心,因为他们即将提供访问权限的应用程序没有注册。
这些方法优于旧学校用户名和密码的优点(在我看来)如下:
所有这些说法我想你可以弄清楚为什么使用用户名和密码(这是ClientLogin所做的)连接到用户帐户是个坏主意。其他身份验证方法允许您执行相同的操作(请求访问)并添加一些优点。
有关如何使用AuthSub对用户进行身份验证的代码可以在这里找到,它几乎可以播放。只需确保将$ _SESSION ['sessionToken']保存到更永久的位置,例如DB。
http://code.google.com/apis/youtube/2.0/developers_guide_php.html#AuthSub_for_Web_Applications
答案 1 :(得分:2)
ClientLogin不是此处的首选机制,因为您的应用程序被强制处理用户的登录凭据。如果用户的身份需要建立的时间超过一个会话,您将被迫存储凭据,这是不理想的 - 您的服务器的妥协将导致谷歌用户的妥协。因此ClientLogin不适合您的应用程序。
你看过Google OAuth了吗?它非常优雅地解决了密码处理问题,并且是一个既定的标准。
答案 2 :(得分:0)
我遇到了同样的问题,最后我使用了ClientLogin。如果您不希望用户看到登录过程的任何部分,则可以这样做。
我不知道是否有更好的方法可以使用AuthSub或其他身份验证方法。