Ошибка входа в Facebook OAuth без www в URL

Я столкнулся с проблемой при входе через Facebook Oauth.

При попытке войти с помощью Facebook (OpenAuth) на моем веб-сайте я столкнулся с этой ошибкой.

  • Условие 1: если я попытаюсь войти с URL-адресом www.medimart .com.np/sf/sfLogin.aspx . Вход прошел успешно и все работает нормально.

  • #P4# <блочная цитата> #P5#

Как я могу решить эту проблему?

настройка изображения Настройки страницы входа в Facebook


person Sandeep Maharjan    schedule 01.01.2018    source источник
comment
разве у вас не должен быть уникальный URL-адрес, представляющий ваше приложение? как перенаправление трафика с www на без www или наоборот?   -  person Ermir Beqiraj    schedule 04.01.2018
comment
да .. это то, что я ищу... Как я могу этого добиться?   -  person Sandeep Maharjan    schedule 04.01.2018
comment
установите модуль перезаписи URL-адресов в IIS, следуйте этому короткому сообщению для прямая конфигурация в файле web.config   -  person Ermir Beqiraj    schedule 04.01.2018


Ответы (2)


Facebook всегда проверяет наличие домена WWW. Поэтому убедитесь, что www.medimart.com.np работает в вашем браузере.


Вы должны отредактировать файл hosts здесь:

C:\Windows\System32\drivers\etc

И добавьте ниже строки:

127.0.0.1 medimart.com.np
127.0.0.1 www.medimart.com.np

См. Как изменить файл hosts.


ссылка, предоставленная Ermir комментарий.

Есть два лагеря по поводу субдомена www. Один считает, что его нужно применять (www.yes-www.org), а другой (no-www.org) считает, что его следует удалить. Они оба правы.

Важно, чтобы у вашего веб-сайта был только один канонический адрес — с www или без него.

На вашем сервере должен быть установлен модуль перезаписи URL. Скорее всего, это уже происходит. Веб-сайты Azure, как и все остальные мои хостинг-провайдеры.

Используйте следующее правило для домена без WWW:

<rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true">
  <match url="*" />
  <conditions>
    <add input="{CACHE_URL}" pattern="*://www.*" />
  </conditions>
  <action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" />
</rule>

Используйте следующее правило для домена с WWW:

<rule name="Enforce WWW" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{CACHE_URL}" pattern="^(.+)://(?!www)(.*)" />
  </conditions>
  <action type="Redirect" url="{C:1}://www.{C:2}" redirectType="Permanent" />
</rule>

Теперь вы можете добавить вышеуказанное правило в файл web.config:

<system.webServer>
  <rewrite>
    <rules>
      <!-- Add your rules here -->
    </rules>
  </rewrite>
</system.webServer>
person 5377037    schedule 03.01.2018
comment
Мне нужно исправить это таким образом, чтобы клиент (которым может быть любое лицо) мог создать учетную запись с помощью Facebook и не получал ошибку, как указано выше, несмотря на то, что он / она использует medimart.com.np - person Sandeep Maharjan; 03.01.2018
comment
тогда домен www.medimart.com.np подходит для ваших клиентов. - person 5377037; 03.01.2018

Как предположил @AsifAli72090, я научился этому.

"Facebook всегда проверяет WWW-домен".

Таким образом, при попытке войти в систему с помощью учетной записи facebook в вашем домене должен быть «www». Перенаправьте «yourdomain.com» на «www.yourdomain.com». Итак, я добавил этот код в свой файл web.config.

<system.webServer>
<rewrite>
  <rules>
    <rule name="Redirect domain.com to www" patternSyntax="ECMAScript" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^yourdomain.com$" />
        </conditions>
        <action type="Redirect" url="http://www.yourdomain.com/{R:0}" />
    </rule>
</rules>
</rewrite>
</system.webServer>
person Sandeep Maharjan    schedule 04.01.2018