Jawbone UP API oAuth 和访问令牌

2024-04-21

我今天开始深入研究 Jawbone 的 UP API,整个身份验证过程中一切似乎都很顺利。问题是,一旦我取回访问令牌,它始终是相同的令牌,它在我的任何请求中都不起作用,并且我无法使用刷新令牌端点更改它。

oAuth 设置:

$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/authURL 和我被发送到 Jawbone 并按预期提示。当我接受授权时,我会按照 URL 中的代码按预期踢回 my-site.com。然后我像这样使用代码

$params = array(
    'client_id' => CLIENT_ID,
    'client_secret' => APP_SECRET,
    'grant_type' => 'authorization_code',
    'code' => $code,
);

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

{
    "access_token": "REALLY_LONG_STRING",
    "token_type": "Bearer",
    "expires_in": 31536000,
    "refresh_token": "ANOTHER_REALLY_LONG_STRING"
}

当我使用access_token尝试得到这样的回应

$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 来看,这是每次的响应:

{
    "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 API 控制台测试相同的流程,请求标头中的承载令牌与我在此处获得的不同。请注意,当我尝试使用我妻子的 Jawbone 凭据执行相同的过程时,我也会获得相同的 access_token。


终于弄清楚发生了什么事并收到 Jawbone 的回复。事实证明,如果您对两个不同的客户端使用相同的身份验证,它们在后端会发生冲突。

对于遇到此问题的其他人,请不要同时在两个不同的上下文中使用相同的登录名,因为它会以奇怪的方式重置身份验证。

在我们的例子中,我们有经常在开发人员之间共享的测试用户帐户,因为除非您拥有实际设备,否则有时很难获得真实数据。这导致“重复”登录,导致 Jawbone 代码崩溃。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jawbone UP API oAuth 和访问令牌 的相关文章

  • 空手道包含且所有键值不匹配错误

    我尝试学习空手道 但遇到了一些问题 我无法自己解决 所以我的功能看起来相当简单 Feature Alerting get the list of all alerts Background url url Scenario Retrieve
  • 根据路由动态加载 Node.js 模块

    我正在使用 Express 在 Node js 中做一个项目 这是我的目录结构 root start js server js lib api user getDetails js user register js The lib api
  • 如何使用 LDAP 身份验证使用 gitlab 设置管理员用户?

    我刚刚设置了 gitlab 但我完全迷失了管理员用户 维基百科似乎对这个话题保持沉默 谷歌也没有提供帮助 那么 如何在 LDAP 身份验证上使用 gitlab 设置管理员用户 您还可以通过在 Rails 控制台中执行以下操作来为用户设置管理
  • Soundcloud API 不明确支持 json 分页

    我正在使用的具体示例 http api soundcloud com users dubstep tracks json client id YOUR CLIENT ID http api soundcloud com users dubs
  • Polymer 1.0:用户身份验证 UX(建议、教程和示例)?

    是否有推荐的 聚合物方式 来进行用户身份验证 这个问题包括技术部分和用户体验 用于进行用户身份验证的用户体验的全面示例 和 或教程 将非常棒 注意 Polymer 入门套件不包含任何身份验证 UX 示例 在这个问题中 用户体验 的意思是 完
  • PHP:在 CURL GET 调用中使用 API 密钥

    我看过关于使用 api 密钥在curl 中验证 post 调用的帖子 我有一个 GET 调用 需要 apikey 进行授权 即请求必须具有包含 apiKey 的授权标头 我已经获得了 api 密钥并尝试将其用于 GET 调用
  • SharePoint Online 身份验证失败

    我有一个 C 应用程序 它通过使用 Web 请求对 SharePoint Online 进行身份验证 它对我来说非常有用 但其他人收到以下错误
  • 字典 API(词汇)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道一个好的 NET 字典 API 吗 我对含义不感兴趣 而是我需要能够以多种不同的方式查询单词 返
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • 获取 2 个字母的州/省缩写

    因此 我使用 GeoNames API 获取国家 地区和州 省信息 并使用这些信息填充表单中的选择下拉列表 此表单将其信息提交给 SOAP Web 服务 并且 SOAP 服务器仅理解 2 个字母形式的国家 地区和州 省数据 IE CA 代表
  • CakePHP 身份验证插件身份关联

    我正在使用 CakePHP 3 8 并迁移到身份验证插件 https book cakephp org authentication 1 1 en index html https book cakephp org authenticati
  • C# 如何使用 WM_GETTEXT / GetWindowText API / 窗口标题

    我想获取应用程序的控件 句柄的内容 这是实验代码 Process processes Process GetProcessesByName Notepad foreach Process p in processes StringBuild
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri
  • Android REST API 连接

    我有点傻 对此感到抱歉 我编写了一个 API 它返回一些 JSON 我的目标是从 Android 应用程序使用此 API 我已经尝试过使用 AsyncTask 但失败了 我想像这样使用它 调用该类 告知 URL 和结果的类型 哪个json
  • Ruby 的 Faraday - 多次包含相同的参数

    我正在使用一个 API 该 API 迫使我多次发送相同的参数名称以级联不同的过滤条件 因此 示例 api GET 调用如下所示 GET http api site com search a b1 a b2 a b3 a c2 我使用 Far
  • 删除或更新 HDF5 中的数据集?

    我想以编程方式更改与 HDF5 文件中的数据集关联的数据 我似乎找不到一种方法来按名称删除数据集 允许我使用修改后的数据再次添加它 或按名称更新数据集 我正在使用 HDF5 1 6 x 的 C API 但指向任何 HDF5 API 的指针都
  • 无法在 Azure AD 的 access_token 中获取电子邮件声明

    我们已在 Azure 中为 SPA 配置了应用程序注册 用于身份验证代码流程 We have added email under optional claims as per below 清单文件配置如下 id
  • ExtJS:使用“记住我”功能登录

    我正在尝试创建一个具有非常常见的 记住我 功能的简单登录窗口 登录验证是通过 AJAX 风格完成的 因此浏览器不会记住我的输入 我的方法是使用内置的state功能 但是如何使用它让我很困惑 Ext state Manager setProv
  • 如何使用 Java 到 TestRail 的 API 将测试用例添加到现有测试运行中?

    我在执行期间创建了一个测试运行 我想在它们开始执行的同时添加测试用例 如果测试用例尚不存在 则已创建 并且该测试用例应该与其他测试用例一起添加到现有的测试运行中 我尝试过使用setCaseIds在运行期间和更新运行之后 但这会覆盖现有的运行

随机推荐

  • 如何将 HashMap 作为 JSON 类型插入到 PostgreSQL 中?

    contacts数据结构为HashMap 我在用着PostgreSQL客户 Rust Postgres https github com sfackler rust postgres插入contact的键和值放入一个表中 然后我想从表中进行
  • 在 R 中上传超过 2.15 GB 的文件

    我有一个手动流程 通过curl 将 5 6 GB 文件上传到网络服务器 curl X POST data binary myfile csv http myserver port path to api 这个过程工作正常 但我很想使用 R
  • hg 将补丁应用于工作目录是什么意思?

    我一生中第一次尝试使用补丁 恢复损坏的存储库 所以我对这个概念不是很熟悉 尽管我读过一点 我正在使用 TortoiseHg 我已经创建了一个补丁 作为文件 切换到另一个存储库 并尝试导入它 我已要求 THg 将其导入存储库 其他选项是货架和
  • 我应该牺牲 innodb_buffer_pool_size/RAM 来为 query_cache_size 腾出空间吗?

    我有一个 16GB 的专用 Mysql 服务器数据库 我的 innodb buffer pool size 设置为 11GB 左右 我正在系统中实现查询缓存 其大小为 80mb 我应该从哪里创建这个空间 innodb buffer pool
  • 保护 .net Web 服务 URL

    我使用 Asp net 3 5 创建了 Web 服务 现在它在实时 Windows 服务器中完美运行 并在使用以下 url 调用它时为我提供完美的 xml http www somedomain com Service asmx op fe
  • iisnode 托管的 Web 应用程序能否计算出其托管的虚拟路径?

    我在用iisnode https github com tjanczuk iisnode在 Windows 上的 IIS 中托管节点 Web 应用程序 当我在 Web 服务器 例如 Express 或 Restify 上设置路由时 我希望以
  • Android 应用程序在调用 System.exit(0) 后不会关闭

    在添加 Admob 活动之前 我有一个运行良好的 Android 应用程序 我正在通过终止进程来关闭我的应用程序 调用 System exit 0 我知道这是完成应用程序的最糟糕的解决方案 我正在使用 OpenGL 状态和 libgdx f
  • 为什么我应该由 setTimeout 调度的函数调用立即执行? [复制]

    这个问题在这里已经有答案了 这是我的问题 我有这个功能来测试代理服务器 function crawl var oldstatus document getElementById status innerHTML document getEl
  • 如何统计字符串中大写字母、小写字母和数字的个数?

    我想用 C 编写一个程序 它从用户那里获取一个字符串 并输出大写字母 小写字母和数字的数量 例如对于输入 aKb12CD34 结果应为 2 个小写字母 3 个大写字母和 4 个数字 Try include
  • PHP Stream_socket_client 的最大套接字数

    我需要检查数百个 URL 并使用stream socket client为每个URL创建套接字 然后使用stream select来检索它们并评估它们的响应时间等 但是 在创建 237 个套接字之后 我无法再创建套接字 没有错误代码或消息表
  • ASP.NET MVC3 Razor 视图 - VS2010 中编辑速度极慢

    我有一个用 ASP NET MVC3 编写的相对较小的项目 工作一段时间后 Visual Studio 2010 在 Razor 视图中变得非常慢 其他文件类型工作正常 我所说的 慢 是指 每次击键大约需要 1 秒才能注册 击键是什么并不重
  • 远程服务器返回错误:(407) 需要代理身份验证

    当我调用网络服务时出现此错误 远程服务器返回错误 407 需要代理身份验证 我了解了总体思路 并且可以通过添加来使代码正常工作 myProxy Credentials NetworkCredential user password doma
  • Java中的paint()和repaint()

    我可能花了两个小时浏览和阅读这些方法和 Graphics 类 也许我很愚蠢 哈哈 但我只是不理解它们 它们是做什么用的 我知道他们应该重绘或更新屏幕上的组件 但我从来不明白为什么需要这样做 我对此很陌生 例如 如果我在屏幕上移动 JLabe
  • 锁定 HttpRuntime.Cache 以进行延迟加载

    我们有一个运行 NET 2 0 的网站 并开始使用 ASP Net HttpRuntime Cache 来存储频繁数据查找的结果 以减少数据库访问 Snippet lock locker if HttpRuntime Cache cache
  • 网站不会在移动设备上滚动[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个网站 http www skeletoncru com 不会在移动设备上滚动 我以前见过这个问题 但这似乎不是通常的嫌疑人 我没主意了
  • Sql语法:select without from子句作为select中的子查询(subselect)

    在编辑一些查询以添加没有值的列的替代项时 我不小心写了这样的内容 这是简单的版本 SELECT id SELECT name FROM t 令我惊讶的是 MySQL 没有抛出任何错误 而是完成了查询 给出了我预期的结果 name列值 我试图
  • 在 Odoo 10 的表单视图中向 One2Many 树添加多条记录

    我目前正在 Odoo 10 中创建一个小部件 它有一个按钮 用户可以单击此按钮 然后会出现一个对话框 允许用户选择多个记录并将它们添加到相应的 One2Many 字段 例如 我可以选择多个产品并将它们添加到新的销售订单中 相应的订单行将添加
  • 如何在rails中执行任意参数化SQL

    出于性能原因 我需要在 Rails 模型中编写一个新方法来执行一些任意 SQL UPDATE table SET col1 AND col2 WHERE id 我明白我可以使用ActiveRecord Base connection exe
  • 在 R 中撤消布局

    我最初创建了一个箱线图和直方图组合的图 为此我设置了 nf lt layout mat matrix c 1 2 2 1 byrow TRUE height c 1 3 par mar c 2 2 1 1 Draw box plot Dra
  • Jawbone UP API oAuth 和访问令牌

    我今天开始深入研究 Jawbone 的 UP API 整个身份验证过程中一切似乎都很顺利 问题是 一旦我取回访问令牌 它始终是相同的令牌 它在我的任何请求中都不起作用 并且我无法使用刷新令牌端点更改它 oAuth 设置 url params