首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Commercetools中创建ProjectApiRoot作为客户

如何在Commercetools中创建ProjectApiRoot作为客户
EN

Stack Overflow用户
提问于 2022-05-09 08:26:53
回答 1查看 124关注 0票数 0

我可以使用Java创建一个ProjectApiRoot,并使用以下代码执行请求:

代码语言:javascript
复制
private static ProjectApiRoot createProjectClient() {
    ProjectApiRoot apiRoot = ApiRootBuilder.of()
            .defaultClient(ClientCredentials.of()
                    .withClientId(System.getenv("CTP_CLIENT_ID"))
                    .withClientSecret(System.getenv("CTP_CLIENT_SECRET"))
                    .build(),
                    ServiceRegion.GCP_EUROPE_WEST1)
            .build(System.getenv("CTP_PROJECT_KEY"))
    return apiRoot
}

但是,我希望授权为一个特定的客户(电子邮件和密码),并与Commercetools交互使用客户。以下代码引发错误:

代码语言:javascript
复制
private static ProjectApiRoot createCustomerClient() {
    def tokenUri = "https://auth.europe-west1.gcp.commercetools.com/oauth/*CTP_PROJECT_KEY*/customers/token"
    def projectKey = System.getenv("CTP_PROJECT_KEY")
    def scopes = System.getenv("CTP_SCOPES")

    def credentials = ClientCredentials.of()
            .withClientId("*email*")
            .withClientSecret("*password*")
            .withScopes(scopes)
            .build()

    def apiRootBuilder = ApiRootBuilder.of()
            .withApiBaseUrl("https://api.europe-west1.gcp.commercetools.com")
            .withClientCredentialsFlow(credentials, tokenUri)

    return apiRootBuilder.build(projectKey)
}

错误:

代码语言:javascript
复制
io.vrap.rmf.base.client.oauth2.AuthException: detailMessage: Unauthorized
"message" : "Please provide valid client credentials using HTTP Basic Authentication.",
EN

回答 1

Stack Overflow用户

发布于 2022-05-09 08:48:06

通过使用withGlobalCustomerPasswordFlow而不是在执行请求之前对客户进行身份验证的withClientCredentialsFlow。

但是,我建议只在客户每次登录的情况下才这样做。在任何其他上下文中使用它(例如,记住登录)需要一种更复杂的方法,因为您需要存储承载令牌和刷新令牌,并且不能轻易地使用中间件方法对客户进行身份验证,而不是作为auth流中间件的一部分。

请参阅https://github.com/commercetools/commercetools-sdk-java-v2/tree/main/commercetools/commercetools-sdk-java-api/src/integrationTest/java/commercetools/me

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

https://stackoverflow.com/questions/72169010

复制
相关文章

相似问题

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