1. コマース統合

認証トークンの取得 (C#)

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ベアラー トークン認証 は、Sitecore Commerce Engine Connectを経由せずにCommerce Engineを直接呼び出すシステムに使用されます。Sitecore Experience Commerce (XC) システムで操作を実行するには、呼び出し元のシステムはまずSitecore IDサーバーに接続して認証トークンを取得し、Commerce Engineへのすべての呼び出しにそれを含める必要があります。他の操作では、トークンが有効である限り、同じトークンを再利用できます。

C# を使用したGetToken要求の例を次に示します。

public static class SitecoreIdServerAuth
{
  public static async Task<string> GetToken()
  {
    using (var client = new HttpClient())
    {
      client.BaseAddress = new Uri(Console.Program.SitecoreIdServerUri);
      client.DefaultRequestHeaders.Accept.Clear();
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
      var content = new FormUrlEncodedContent(new []
      {
        new KeyValuePair<string, string>("client_id", "postman-api"),
        new KeyValuePair<string, string>("scope", "openid EngineAPI postman_api"),
        new KeyValuePair<string, string>("grant_type", "password"),
        new KeyValuePair<string, string>("username", "myUserName"),
        new KeyValuePair<string, string>("password", "myPassword")
       });
      var response = await client.PostAsync("connect/token",content);
      var result = JsonConvert.DeserializeObject<TokenResponse>(response.Content.ReadAsStringAsync().Result);
      return $"Bearer {result.access_token}";
   }
}
private struct TokenResponse
{
  public string access_token { get; set; }
  public long expires_in { get; set; }
  public string token_type { get; set; }
  }
}
この記事を改善するための提案がある場合は、 お知らせください!