我想确保我正确地理解了(草案)规范,该规范声明:
重定向端点URI必须是由
RFC3986第4.3节。端点URI可能包括
"application/x-www-form-urlencoded“格式化
(W3C.REC-html401-19991224)查询组件(RFC3986第3.4节),在添加其他查询参数时必须保留该组件。这个
端点URI不能包括片段组件。
我问的原因是,谷歌和Facebook似乎都没有保留任何查询字符串。
发布于 2012-07-14 02:29:11
重新阅读规范,似乎引用的规范部分并不适用于OAuth服务器对URI的处理,而是适用于OAuth客户端对给定的原始端点URI的处理。
换句话说,如果我说我的OAuth端点(您在重定向到我的服务器进行OAuth授权时必须使用)是:
http://example.com/oauth.php?endpoint=token
然后,当客户端将?response_type=code&client_id=...&state=...&redirect_uri=...
添加到URI时,不允许在原始端点uri中丢弃"?endpoint=token“,必须使用URI:
http://example.com/oauth.php?endpoint=token&response_type=code&client_id=...&state=...&redirect_uri=...
所以,至少就规范的那一部分来说,没有什么可以说明Facebook,Google等.除了“状态”参数之外,必须保留任何未知的查询参数。
从技术上讲,您可能可以使用&state=
参数以JSON格式传递自定义数据。虽然这可能有用,也可能行不通。我注意到,当您使用特殊字符时,Meetup的OAuth 2实现似乎会破坏状态。一些我认为是违反规范的东西。
https://stackoverflow.com/questions/10436924
复制相似问题