首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jawbone UP API oAuth和Access令牌

Jawbone UP API oAuth和Access令牌
EN

Stack Overflow用户
提问于 2015-03-28 19:36:13
回答 1查看 1.1K关注 0票数 3

我今天已经开始深入研究Jawbone的UP,在整个认证过程中,一切似乎都进行得很顺利。问题是,一旦我得到一个访问令牌,它总是相同的令牌,它在我的任何请求中都不能工作,而且我不能用refresh_token端点来更改它。

oAuth设置:

代码语言:javascript
复制
$url_params = array(
    'response_type' => 'code',
    'client_id' => CLIENT_ID,
    'scope' => array('basic_read', 'extended_read', 'move_read'),
    'redirect_uri' => 'https://my-site.com/up_auth.php',
);

这些是附加到https://jawbone.com/auth/oauth2/auth URL的参数,我被发送到Jawbone并按预期提示。当我接受授权时,我会像预期的那样被踢回我的-site.com,在URL中使用代码。然后,我使用如下代码

代码语言:javascript
复制
$params = array(
    'client_id' => CLIENT_ID,
    'client_secret' => APP_SECRET,
    'grant_type' => 'authorization_code',
    'code' => $code,
);

并将这些参数附加到https://jawbone.com/auth/oauth2/token,并最终使用类似于以下内容的内容将其踢回我的服务器:

代码语言:javascript
复制
{
    "access_token": "REALLY_LONG_STRING",
    "token_type": "Bearer",
    "expires_in": 31536000,
    "refresh_token": "ANOTHER_REALLY_LONG_STRING"
}

当我使用access_token试图得到这样的响应时

代码语言:javascript
复制
$headers = array(
    'Host: my-site.rhcloud.com',
    'Connection: Keep-Alive',
    'Accept: application/json',
    "Authorization: Bearer {$_REQUEST['access_token']}",
);

$ch = curl_init('https://jawbone.com/nudge/api/v.1.1/users/@me/moves');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$o = curl_exec($ch);
curl_close($ch);
var_dump($o);

在API中,这是每次响应:

代码语言:javascript
复制
{
    "meta": {
        "code": 401,
        "error_detail": "You must be logged in to perform that action",
        "error_type": "authentication_error",
        "message": "Unauthorized"
    },
    "data": {

    }
}

即使在私有浏览会话中,令牌也不会改变,即使我成功地使用提供的refresh_token和正确的API调用进行刷新--调用成功了,但是Jawbone给出了相同的令牌。如果我通过Jawbone控制台测试相同的流,请求头中的Bearer令牌与我在这里得到的令牌不同。请注意,当我尝试使用我妻子的Jawbone凭据进行相同的处理时,我会得到相同的access_token。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 05:14:45

终于弄明白了到底是怎么回事,并从Jawbone那里听说了这件事。结果表明,如果您对两个不同的客户端使用相同的auth,则后端会发生冲突。

对于其他遇到这个问题的人,不要在两个不同的上下文中同时使用相同的登录,因为它会以奇怪的方式重置创作。

在我们的例子中,我们有测试用户帐户,这些帐户通常是在devs之间共享的,因为除非您有实际的设备,否则有时很难获得真实的数据。这导致了“重复”登录,使Jawbone代码抓狂。

我们得到了一个Jawbone的确认,他在开发内部应用程序时遇到了同样的问题……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29321659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档