如何从auth0客户端的api获取有效令牌?

时间:2017-09-24 16:13:36

标签: php token auth0

我正在使用带有auth0的emberjs登录。 通常我输入用户名和密码,我得到一个有效的令牌,我发送给api等。

现在,我想在api上编写一些测试,但我总是需要一个有效的令牌。我的令牌在一天到期。因此,为了运行测试,我总是需要手动更改令牌样本。

所以我想从api以某种方式获得一个令牌?有可能,怎么样?

1 个答案:

答案 0 :(得分:2)

非常好的问题。为测试执行此操作的简单方法是使用Client Credentials Grant Flow。由于您需要在测试中使用访问令牌,因此您可以将其视为机器流程的机器。

以下是我通过测试to receive an Auth0 Management API v2 access token执行此操作的示例。和corresponding test too。这是我使用该访问令牌查找as part of a separate test的地方。但是,同样的原则适用于Auth0特定管理API或您使用非交互式客户端和您自己的受众在Auth0仪表板(在API下)自己定义的API。

电话的“形状”大致如下:

{ 
  method: 'POST',
  url: 'https://{TENANT}.auth0.com/oauth/token',
  headers: { 'content-type': 'application/json' },
  body: '{
         "client_id":"{CLIENT ID}",
         "client_secret":"{CLIENT SECRET}, 
         "audience":"https://{tenant}.auth0.com/api/v2/",
         "grant_type":"client_credentials"
  }' 
};

您调用oauth/token端点,并传递clientId,clientSecret,受众(针对该api)和grant-type(client_credentials)。如果使用emberjs / php执行此操作 - 它非常相似 - 如果您在Auth0仪表板中创建新客户端并选择Non Interactive客户端类型,然后点击Quick Start - 它将指导您完成设置(如果需要) 。请参阅下面的屏幕截图,如果您有任何问题,请随时发表评论。

enter image description here