2014-07-10 180 views
0

我正在oAuth登录我的网站。当我在做Facebook的时候,我发现我可以动态地给回报网址。但是当我在做谷歌,我发现我传递给谷歌的返回网址必须与我在谷歌上做的设置相匹配。oAuth多个返回网址

为什么这两个oauth提供者有所不同,其他誓约提供者怎么样?

实现动态返回url的最佳方式是什么?

谢谢你,罗恩

回答

1

假设你指的是重定向URI中的OAuth 2.0

由RFC 6749(OAuth 2.0已授权框架):

授权服务器必须要求以下客户端注册其重定向端点:

  • 公共客户端。
  • 使用隐式授权类型的机密客户端。

授权服务器应该要求所有客户端在使用授权端点之前注册他们的重定向端点。

“重定向端点”是重定向uri。

任何使用授权码的客户端与客户端ID和客户端密钥一起可以允许用户指定重定向URI。这是因为传递给重定向URI的授权码是无用的,除非您也有客户端密码。

如果客户端不能保密并使用隐式访问令牌流,例如一个仅限javascript的web应用程序,重定向uri必须注册以确保访问令牌不会落入错误的人手中。

即使使用授权码流作为额外的安全措施,OAuth提供商也可以选择要求重定向uri进行注册。

至于实现动态重定向uri,取决于您的网站上oauth使用的库。

+0

是的,要实现多个返回uris,我可以在oAuth服务器中使用静态重定向uri设置,并根据服务器中的会话再次重定向。 但是,我只是好奇为什么Facebook oauth本身允许多个返回uris,但谷歌oauth没有。 – Ron