开发者

Right way to set the OAuth Authorization header?

I want to set a request header for a url xyz.com is it the right way to set it in php?

header('Authorization: AuthSub token="xxxxxx"');
header('location:https://www.google.com/accounts/AuthSubRevokeToken');

I am trying to set the header for this URL for a call.But the Authorization: AuthSub header doesnt shows up in the request headers section of the FireFox NET panel.Which is used to show the requests.

Any idea about it? Thanx.

I was using curl previously,But it didnt seemed to issue any request as i cant see it in the NET panel of FireFox. Code is as follows:

$curl = curl_init(); 

    curl_setopt($curl, CURLOPT_URL,"https://www.google.com/accounts/AuthSubRevokeToken"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FAILONERROR, tru开发者_Go百科e);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);   
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: AuthSub token="1/xxx"'
                    )); 
    $result = curl_exec($curl);  
    curl_close($curl);            
    echo 'hererer'.$result;exit; 


header sets response headers, not request headers. (If you were trying to send a HTTP request elsewhere, it would have no effect.)

Please also note what the manual says about Remember that header() must be called before any actual output is sent, ....

And turn on error_reporting(E_ALL); before using header() to see if that is the issue for you.


Header names and values need to be separated by one colon plus a space, so the location "header" is just wrong, it should be:

header('Location: https://www.google.com/accounts/AuthSubRevokeToken');

(It's common to write the case this way, too, but not a need)

Next to that the header function is setting response headers, not request headers. So you're basically using the wrong tool.

In PHP you can not set request headers, that's part of the client (e.g. browser), not the server. So header just looks wrong here. Which HTTP client are you using?


A call, as in using CURL to request another page? The header() function applies only for web-browser<->server communications. It cannot affect any requests your server-side script does to other webservers. For that, you need to modify the particular method you're using, e.g. curl or streams.

For curl, see CURLOPT_HTTPHEADER here: http://php.net/curl_setopt

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜