Jay*_*Pea 2 facebook facebook-login
因此,当使用Facebook登录时,事实证明,如果您设置response_type为token或code%20token将"响应数据作为URL片段包含在"重定向到您的应用的URL上.说真的,为什么?什么时候对任何人都有用?
无论如何,我希望这在某种程度上与安全有关,并且除了惹恼别人之外还有其他原因,但我想知道是否有办法禁用它,因为我使用的是Angular并且它是真实的使用hashbangs处理网址的痛苦.
如果我设置response_type的code唯一的代码返回一个非常干净的查询参数,但我想,以执行额外的验证能够同时接收.有没有办法改变这种行为?谢谢.
编辑:
那么事实证明,设定response_type的code收益#/ =在URL的末尾,所以没有办法得到一个干净的查询字符串.已经确定没有办法改变这种行为,但我仍然有兴趣找出Facebook为什么这么做.它与安全有关吗?这些url片段的目的是什么?
对于你的第一个问题,我想你会token在浏览器中处理所有内容而不是在服务器上处理时使用.
对于您的主要问题,据我所知,您无法改变Facebook重定向成功授权的方式.Facebook不会将令牌作为干净的查询参数提供给您.如果您使用token或code token,您想要的将在哈希片段中.抱歉.
注意:这对您来说可能不是问题.我不确定你想要什么"附加验证",但是当你使用时code token,交换生成的代码会获得与你刚刚嵌入URI中的代码不同的标记.两者现在都有效,将分别到期.真的,你可能需要代码或令牌; 两者都不会帮助你,因为他们没有联系.
response_type为code你被重定向到如下:http://example.com/redirect_uri?state=thestatepassed&code=AQDN9E9GYjA8NbyCt
87_jV5vHnCQylNxmBswo6Z1BsrR7lmTPom6wjrzfan6P4GBLDt3EQrfPg0xSLoMLxBBfscsyfSY
JNM2vu9OoqEQXXSJCTUq_fMpUwqkYbCHp-GAqL4H1ymbMz7zPKAG61V9BtKTSuez39yhawOu7l-
6ww4thP41Ka9PVcknTQ6fPjPXKYSyxEmANps9zevCPFsXpBZCO7_dms65-ZZuG2wVBd16gFnBZH
q8EY0qih6-9o61wXh7bBvVPVSZ2im7Oj1nx47YgDpbD3X0XdlVhUoGYmBdER9hNmIC2PmmY7VAo
PlYCZc#_-_
从那里,您需要通过Facebook的OAuth端点交换代码以接收访问令牌.然后可以对Facebook API使用访问令牌.
response_type为token你被重定向到如下:http://example.com/redirect_uri#access_token=CAACYnSxGEhsBAJBg0ohZBhAf7pKEU
sm5ytZAZBzKjISFuRun2ZByZCqEsxrVIgtiO7iIlJZBBbGm6fRPQXItZCX6YgjPknUBsr78tJtv
W6fySULrUo9vdW57ZCMUUIlNaeZAcU8DzUXKmFpgotOyhE3jXYz1c3eu00Aii0AZBsPrtrwjpwQ
mV8VYQNiqKZBIsqOrIwZD&expires_in=4168&state=thestatepassed
您拥有调用Facebook API所需的一切.返回的访问令牌是有效的,但如果您在服务器端执行某些操作,则应该针对Facebook的令牌检查端点进行检查.(真的,在这一点上,只是使用code.我从来没有这样做过,祝你好运.)
如您所述,访问令牌现在包含在URL的哈希片段中.
response_type为code token你被重定向到如下:http://example.com/redirect_uri#code=AQAtzsjPivFPsJ538KFlPuhLaK6pDMlrGDiwmi
KDcpgNfWrO1EdX5i6zK_Op2D0QDEXZLyifXxh4TSeBZCWhnkl7YV1LMyEkbPURAWSoqRoeG7tfM
4nB4nDAHOK0H9umb0KnoypRT1pP05FJKhl2QjpCJrPPFDHl6y-1X9ZMj1uVHtmPNi4tG_6QAbuL
RaGadBkekb22uJ0iwSrWc9OKi6ET70lCTYb18hbwUkzHXtTq12nNEdsDJ7Ku2wEBwMygFwErYDX
CrnPoFoah_z0UPCfv3XZLy98Dhlzw_lnx8nnCB-PCppOWRqmydvQJehPd86k&access_token=C
AACYnSxGEhsBALXHRQwfm4UoauRlZBJDVpZCiM6ZCuM3bE965F5JVBfBB8inTFdhfJ5obnonSqa
m3v8FbWhHXrhRSx4ugwAmmDaWyxmPELWqSrkrDO5ueTUXhhjiEZBTd7HjCVCSOXXhOSo3DjEVSC
lOaZBfqmXsprYyc6LJC39sroCcHYCZCv&expires_in=5183426&state=thestatepassed
现在你有一个访问令牌和一个代码(到期适用于令牌,而不是代码).如前所述,该代码可以通常的方式交换访问令牌,但返回的访问令牌将与您刚嵌入URI中的访问令牌不同.
但是,同样,你关心的是哈希片段.
请参阅$ location上的AngularJS doc以访问哈希.比我更了解的人可以谈谈如何使用路线以及如何最好地削减参数.
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |