Столкнулся с проблемой во время установки приложения shopifyC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Столкнулся с проблемой во время установки приложения shopify

Сообщение Anonymous »

Я использую веб-форму Asp.net C# и разрабатываю встроенный код приложения Shopify для установки и авторизации.  Я создал установку и аутентификацию (обратный вызов перенаправления) в ApiController. Когда я использовал этот код

Код: Выделить всё

[System.Web.Http.AcceptVerbs("GET")]
[System.Web.Http.Route("api/shopify/install")]
public IHttpActionResult Install(string shop)
{
    logger.Info("Start Install : ");
    //string req = string.Format("https://{0}/admin/oauth/authorize?client_id={1}&scope={2}&redirect_uri=https://{3}/api/shopify/auth", shop, AppKey, Scope, CurrentURL);
    var installUrl = $"https://{shop}/admin/oauth/authorize" + $"?client_id={AppKey}&scope={Scope}&redirect_uri=https://{CurrentURL}/api/shopify/auth";
    return Redirect(installUrl);
}

Auth function
[System.Web.Http.AcceptVerbs("GET")]
[System.Web.Http.Route("api/shopify/auth")]
public HttpResponseMessage auth(string shop, string code, string host)
{
    logger.Info("Start auth");

    if (!VerifyShopifyRequest(null))
    {
        logger.Info("install method: Unauthorized shopify request");
        //return Redirect($"https://{shop}/admin/apps");
        return new HttpResponseMessage(HttpStatusCode.Unauthorized)
        {
            Content = new StringContent(Helper.ApiResponse("error", "Unauthorized"))
        };
    }

    var AccessToken = GetToken(shop, code);
    HttpResponseMessage responseUrl = null;
    string WebHookToken = Guid.NewGuid().ToString("N").ToLower();      
    #region Insert Details to our Database
    if (AccessToken != null)
{
//got the Access token
responseUrl = SetWebHookDynamic(shop, AccessToken, WebHookToken);
return responseUrl;
}
Код был установлен и приложение успешно авторизовано. Проблема в том, что этот код не работает, когда я включаю «Блокировать сторонние файлы cookie». Я получаю сообщение об ошибке
Отказался создать кадр «xx.myshopify.com/», потому что предок нарушает следующую директиву Политики безопасности контента: «frame-ancestors 'none'».  Затем я использовал Appbridge для устранения этой ошибки и создал такую ​​функцию установки.

Код: Выделить всё

Install Function
[System.Web.Http.AcceptVerbs("GET")]
[System.Web.Http.Route("api/shopify/install")]
public HttpResponseMessage install(string shop, string host = "")
{
    logger.Info("Start Install : ");
    if (!VerifyShopifyRequest(null))
    {
        logger.Info("install method: Unauthorized shopify request");
        return new HttpResponseMessage(HttpStatusCode.Unauthorized)
        {
            Content = new StringContent(Helper.ApiResponse("error", "Unauthorized"))
        };
    }            
    string authRedirectUrl = string.Format("https://{0}/admin/oauth/authorize?client_id={1}&scope={2}&redirect_uri=https://{3}/api/shopify/auth", shop, AppKey, Scope, CurrentURL);
    string htmlContent = $@"
          
    
    
                        
            document.addEventListener('DOMContentLoaded', function () {{
                var AppBridge = window['app-bridge'];
                var createApp = AppBridge.default;                    
                      if (window.top == window.self) {{
                          window.location.assign('{authRedirectUrl}');                      
                      }} else {{                        
                        var app = createApp({{
                            apiKey: '{AppKey}',                           
                            host: '{host}',
                                  shopOrigin: '{shop}',
                                  forceRedirect: true
                        }});                    
                        var Redirect = AppBridge.actions.Redirect;  
                        Redirect.create(app).dispatch(Redirect.Action.REMOTE, '{authRedirectUrl}');                            
                            window.location.assign('{authRedirectUrl}');  
                          }}
            }});
        ";
    return new HttpResponseMessage(HttpStatusCode.OK)
    {
        Content = new StringContent(htmlContent, System.Text.Encoding.UTF8, "text/html")
    };
}
Когда я запускаю код, он работает и успешно авторизуется, но он выходит из встроенного приложения, что означает, что он не попал в Iframe, но Shopify необходимо, чтобы либо его приложение было либо полностью встроено или не встроенный.
После перекрестной проверки URL-адреса ApiKey, SecretKey, Scope и Redirect верны. Не могли бы вы обратить внимание на эту проблему? Дайте мне знать, если вам нужна дополнительная информация или что-то в этом роде.

Подробнее здесь: https://stackoverflow.com/questions/791 ... hopify-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Столкнулся с проблемой во время установки приложения shopify
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Получите данные обо всех клиентах в магазине Shopify, используя API Shopify и PHP Laravel.
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Получите данные обо всех клиентах в магазине Shopify, используя API Shopify и PHP Laravel.
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Shopify: я пытаюсь найти способ преобразовать шаблон Shopify в html5.
    Anonymous » » в форуме Html
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Я столкнулся с проблемой: «<Имя приложения> остановлено»
    Anonymous » » в форуме Android
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»