如何使用 PHP 授权头

10
我正在尝试使用授权头来使用vimeo API。
它告诉我要做的是 'Authorization: basic ' + base64(client_id + ':' + client_secret),这是我可以做到的。
但是互联网上没有任何地方告诉我我实际上该怎么做?这不是PHP,但是它应该放在一个PHP文件中吗?如果是这样,存储后我要在它上面使用哪个函数?还是应该放在htaccess文件中?
所有在线文档都非常糟糕,这真的很令人难过。
总之,我的意思是SHOW ME THE CODE。
3个回答

23
$api_url = 'http://myapiurl';

$client_id = 'myclientid';
$client_secret = 'myclientsecret';

$context = stream_context_create(array(
    'http' => array(
        'header' => "Authorization: Basic " . base64_encode("$client_id:$client_secret"),
    ),
));

$result = file_get_contents($api_url, false, $context);

文档链接:

对于更复杂的请求,您可以使用cURL,但是该库的 PHP 实现很混乱,我倾向于尽可能避免它。 Guzzle 是一个抽象了许多这里复杂性的库。


base64_encode 是我一直在寻找的东西,因为在某个 API 文档中他们写道我需要使用 md5("$client_id:$client_secret"),但是它不起作用,所以我尝试了 base64_encode 并且它可以工作。 :D - Oleg Abrazhaev

2

Vimeo强烈建议您不要自己编写这些身份验证系统,而是使用官方库:https://github.com/vimeo/vimeo.php

如果您正在寻找自定义的PHP集成,它会根据您进行HTTP请求的方式而有所不同。 Guzzle和curl都是HTTP请求库,具有自己设置标头的方法(http://guzzle.readthedocs.org/en/latest/request-options.html#headersPHP cURL custom headers

至于对您的令牌进行base64编码,请使用base64_encode方法(http://php.net/manual/en/function.base64-encode.php


-3

$curl = base64_encode("1100032342:F!rSTU99HD"); echo $curl;

结果:
MTEwMDAzMjM0MjpGIXJTVFU5OUhE


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接