查看 Google OpenId 连接和 Facebook 登录,我注意到 Facebook 总是从浏览器中点击“重定向 URI”。解释一下 - 当用户点击表单的链接时
https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}
她/他总是被重定向到 {redirect-uri} 指定的 URL。然后,此 URL 包含可以交换访问令牌的“代码”。
谷歌有类似的方法,但是当使用“服务器流”时,{redirect-uri} 被谷歌的服务器“命中”。这样,需要交换访问令牌的代码永远不会显示给用户。
看起来 FB 的方法不太安全,因为访问代码实际上最终会落入攻击者的手中。
- 有没有办法让 FB 将代码发送到重定向 URI 但实际上不重定向客户端?类似于谷歌所做的事情。
- 有没有人很好地解释为什么 FB 没有类似“服务器流”的行为,而只有“隐式流”?