php - file_get_contents(https ://. ..@me) : failed to open stream: HTTP request failed! HTTP/1.1 401 未经授权

标签 php html http cookies

我正在处理一个网页,我必须从 API(使用 PHP)获取数据。身份验证工作正常,用户可以登录。为了保存访问 token ,我在 php 中使用了函数 setcookie()。但是一段时间后数据消失了,我收到以下警告:

Warning: file_get_contents(https://...@me): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\wamp\www\main.php on line 40

这些是行:

function getUser($access_token){
$url = "https://jawbone.com/nudge/api/v.1.0/users/@me";

$opts = (array(
    'http'=>array(
        'method'=>"GET",
        'header'=>"Authorization: Bearer {$access_token}\r\n"
    )
));

$context = stream_context_create($opts);
$response = file_get_contents($url, false, $context); //

$user = json_decode($response, true);
return $user['data'];
}

这实际上很奇怪,因为当我删除访问 token cookie 然后再次登录(并进行身份验证)时它会起作用......我只是不明白为什么会这样。

设置cookie(过期时间为31536000):

 if (!isset($_COOKIE['access_token'])) {
        setcookie('access_token', $data, time() + ($json['expires_in']));
    }

你能告诉我我做错了什么吗?

最佳答案

检查您的 cookie 的到期日期,即使 token 在端可能有效,cookie 也可能提前到期。

关于php - file_get_contents(https ://. ..@me) : failed to open stream: HTTP request failed! HTTP/1.1 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178163/

相关文章:

php - UndefinedFunctionException 试图从命名空间 xxx 调用函数 xxx

php - MySQL先插入后删除

javascript - 使用 GET 将复杂的 JS 对象从 Angular 传递到 C# WebApi

python - 无法获取 POST 参数

javascript - 如何在 PHP 中获取 [object Object] 的内容?

php - PDO - 查询执行两次?

python - 带有 html 区域链接的 cartopy 国家 map

javascript - 为什么我的 Canvas 上的图像在没有文本覆盖的情况下被下载?

html - CSS 使卡片淡入然后在页面加载时淡出

http - 如何很好地销毁 Node.js http.request 连接?