我有一个Google App Engine项目,我想使我的REST API对第三方可用。 像twitter API。
Twitter要求发送用户名和密码,以便可以对其进行授权-我可以使用Google用户帐户执行此操作吗?
我在该网站的某个地方读过,这不是首选方法,因为他们的凭据已输入到第三方应用程序中/已通过等。
我不想过于复杂,并将其重定向到Google自己的登录名/验证码等。 我已经看到了它的实现-甚至对于台式机/电话/小工具来说,这可能也不起作用。
是第三方应用程序调用我的服务的一种解决方案-该应用程序在我的网站上调用页面(要求登录-我只是添加登录权限),然后用户登录,然后我的应用程序创建一个长令牌,然后将其传递返回第三方应用程序,然后将其存储在自己的存储库中,并将其作为令牌arg传递到发布/放置/删除请求中。 然后,我的REST服务将检查令牌并对照查找(令牌|用户密钥)对进行配对,并允许/拒绝方法调用。
我还可以向该应用询问他们的域名吗? 并存储它。 我想我可以在REST服务上读取请求的网址,并检查它们是否匹配等?
这是一个合理的解决方案,还是我住在90年代?
OAuth就是在这种情况下创建的。 这是您刚刚描述的那种auth-token方案的规范,如今已经相当广泛了 。
为了平衡起见 ,请参见最近的StackOverflow线程 。