Auth0 - 为啥范围不足以及如何处理?

Posted

技术标签:

【中文标题】Auth0 - 为啥范围不足以及如何处理?【英文标题】:Auth0 - why insufficient scope and what to do with it?Auth0 - 为什么范围不足以及如何处理? 【发布时间】:2016-10-30 18:20:20 【问题描述】:

我正在尝试使用 Auth0 进行身份验证并获取用户数据。

import json
import requests

payload = 
    'grant_type': 'password',
    'username': '********',
    'password': '********',
    'client_id': '********',
    'connection': 'Username-Password-Authentication',
    'scope': 'openid'
    # 'scope': 'openid, read:clients, read:client_keys'
    # 'scope': 'read:clients'

base = 'https://********.auth0.com'

url = base + '/oauth/ro'
response = requests.post(url, data=payload)
response = json.loads(response.content)

headers = "Authorization": "bearer " + response["id_token"]
response = requests.get(base + '/api/v2/clients/joebloggs', headers=headers).json()

print response

我一直得到的是

u'errorCode': u'insufficient_scope', u'message': u'Insufficient scope, expected any of: read:clients,read:client_keys', u'error': u'Forbidden', u'statusCode': 403

究竟出了什么问题,该怎么办?

【问题讨论】:

【参考方案1】:

您不能将id_token 用于 Auth0 API。您需要 API (v2) 的特定令牌(在您的情况下,您需要 read:client 范围)。见这里:https://auth0.com/docs/api/management/v2

【讨论】:

嗨 Eugenio Pace,您所说的“需要阅读:客户范围”是什么意思?我如何更改范围,范围是什么?您能否提供更多详细信息? 这意味着要调用API,您需要获取一个具有read:client 范围的access_token :-)。换句话说,您对令牌的请求需要包含read:client 范围,并且如果获得授权,您将能够调用 API。 id_token 将没有该权利。

以上是关于Auth0 - 为啥范围不足以及如何处理?的主要内容,如果未能解决你的问题,请参考以下文章

How Javascript works (Javascript工作原理) 内存管理及如何处理 4 类常见的内存泄漏问题

我应该如何处理 Python 中的包含范围?

如何处理此索引超出范围错误 (LINGO)

OLAP 如何处理数字范围的维度?

如何处理张量流中0-1范围之外的输入?

Vigenere密码,如何处理超出字符值范围的序数值