如何解决无法从 TokenProvider commercetools/sdk-auth 获取 access_token 和 token_type
我正在尝试将 apollo-client 与 commercetools 集成,但没有获得令牌和令牌类型的详细信息,以下是示例代码。
import ApolloClient from 'apollo-client';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';
import SdkAuth,{ TokenProvider } from '@commercetools/sdk-auth';
// Create token provider for the commercetools project
const tokenProvider = new TokenProvider({
sdkAuth: new SdkAuth({
host: 'https://auth.us-central1.gcp.commercetools.com/',projectKey: 'test-ecommerce-store',credentials: {
clientId: '<clinet_id>',clientSecret: '<clientSecret>',},scopes: ['manage_products:test-ecommerce-store'],}),fetchTokenInfo: sdkAuth => sdkAuth.anonymousFlow(),});
const httpLink = createHttpLink({
uri: 'https://api.us-central1.gcp.commercetools.com/test-ecommerce-store/graphql',});
const authLink = setContext((_,{ headers = {} }) => tokenProvider.getTokenInfo()
.then(tokenInfo => `${tokenInfo.token_type} ${tokenInfo.access_token}`)
.then(authorization => ({ headers: { ...headers,authorization } })));
export default new ApolloClient({
link: authLink.concat(httpLink),cache: new InMemoryCache()
});
错误:“invalid_scope” error_description: "超出权限:获取匿名令牌所需的 create_anonymous_token 权限。" 错误:[{代码:“invalid_scope”,...}] 消息:“超出权限:获取匿名令牌所需的 create_anonymous_token 权限。” 状态代码:400
解决方法
要获取匿名会话的访问令牌,OAuth 客户端需要 create_anonymous_token 范围。您用于发送此请求的 API 客户端是否具有此范围?
您可以创建的匿名令牌数量没有限制。
,查看您的错误,我可以简单地确定问题如下。
在测试您的代码时,您已经消耗了创建匿名令牌的允许阈值。
现在,您要么等待一段时间,可能是第二天,要么您可以寻求支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。