简体   繁体   English

使用url#登录Facebook#附加访问令牌php

[英]facebook login using url # prepends access token php

yeah so I have a button that let users login to my app via facebook using redirect url 是的,所以我有一个按钮,允许用户使用重定向URL通过Facebook登录到我的应用程序

<a href="https://www.facebook.com/dialog/oauth?
                            client_id=xxxxxxx&
                            redirect_uri=<?php echo base_url() ?>user/fblogin&
                            response_type=code%20token">
                                Login with facebook
</a>

In the url facebook replies with (notice the #) 在url中,facebook回复(注意#)

http://my-site.co.jp/user/fblogin?#access_token=CAAL520EmBRIBAJjslRmPMabcdefg8ZCHtiLExYwQf4HS2FhRsIOH7qMmntDnvzqQ20FKTiBscoP9gP2VZCX3snAhLkJYchkQNrWZCZBk5BZBNNwVSby9T0jY20aQhGVI90tmGsnrohCAYvZBGMT7TkNS6YH0hkeVpITqlPhXcAfjGipHHeEQhPIpI8M8fJYbbZBbeKBJt1kAfybJQd2HLxQ2yC&expires_in=5182917&code=AQCLGq5Sr98OdowT6kly_jvekac0z1sd3-_P_9aNcNbp4AjlYyWX3AQPfiGMODtmziNY8YMSXCCYySrH1pvhlUUL8btcOYvQJRcW-qNHCMvDc21gRSL9Zw0yE3ZxZGHQxXJeeDXnh8sqEh2UqwjzrUpgnC9Qb9xz2hQxKpalVn5-tQTZ8wFmHbTjg9gL0rOK504JHCCWExaOAAQwASvKUSrNlfPxHv0XGjarebadsfkf538TCqCTbFIkLMIK52DvXljQ5ODWUJqzxiphrIUCLhZYnZcdW6jratH-rLqwxDwxs6CIwkVWVBwDpyu1jeQjbxAYtjdo2pnDRHuVJlFePzDFiD

now I can't get the access token's value via $_REQUEST or $_GET because of the #... 现在由于#...,我无法通过$ _REQUEST或$ _GET获取访问令牌的值。

I want to get the accesstoken's value. 我想获取accesstoken的值。

Thanks in advance 提前致谢

That's by design I think. 我认为那是设计使然。 Have a look at 看一下

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.1#login https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.1#login

which states 哪个州

code%20token Response data is included as a URL fragment and contains both an access token and the code parameter. code%20token响应数据作为URL片段包含在内,并且包含访问令牌和code参数。

Why they don't pass both keys as parameters is not clear to me, but you should be able to do some string operations in PHP easily to split the URL etc... 为什么我不知道为什么它们不能同时传递两个键,但是您应该能够在PHP中轻松地执行一些字符串操作以拆分URL等。

Have a look at http://codepad.org/Qktxh475 看看http://codepad.org/Qktxh475

<?
$url = "http://my-site.co.jp/user/fblogin?#access_token=CAAL520EmBRIBAJjslRmPMabcdefg8ZCHtiLExYwQf4HS2FhRsIOH7qMmntDnvzqQ20FKTiBscoP9gP2VZCX3snAhLkJYchkQNrWZCZBk5BZBNNwVSby9T0jY20aQhGVI90tmGsnrohCAYvZBGMT7TkNS6YH0hkeVpITqlPhXcAfjGipHHeEQhPIpI8M8fJYbbZBbeKBJt1kAfybJQd2HLxQ2yC&expires_in=5182917&code=AQCLGq5Sr98OdowT6kly_jvekac0z1sd3-_P_9aNcNbp4AjlYyWX3AQPfiGMODtmziNY8YMSXCCYySrH1pvhlUUL8btcOYvQJRcW-qNHCMvDc21gRSL9Zw0yE3ZxZGHQxXJeeDXnh8sqEh2UqwjzrUpgnC9Qb9xz2hQxKpalVn5-tQTZ8wFmHbTjg9gL0rOK504JHCCWExaOAAQwASvKUSrNlfPxHv0XGjarebadsfkf538TCqCTbFIkLMIK52DvXljQ5ODWUJqzxiphrIUCLhZYnZcdW6jratH-rLqwxDwxs6CIwkVWVBwDpyu1jeQjbxAYtjdo2pnDRHuVJlFePzDFiD";

$parameters = substr($url, strpos($url, "#") + 1);
$parameter_array = explode("&", $parameters);

echo "Access Token: " . substr($parameter_array[0], strpos($parameter_array[0], "=") + 1) . "\n";
echo "Expires: " . substr($parameter_array[1], strpos($parameter_array[1], "=") + 1) . "\n";
echo "Code: " . substr($parameter_array[2], strpos($parameter_array[2], "=") + 1) . "\n";
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM