Google Войти отличается на производственном сервере - PullRequest
0 голосов
/ 03 июля 2018

Я хочу реализовать вход в Google в существующем приложении asp.net. Я проверил его на своем локальном хосте, и он работает хорошо, но после развертывания на моем производственном сервере он не работает Одна вещь, которую я заметил, что отличается - это имя Projet / Application на экране «Выберите учетную запись».

1- Могу ли я использовать один и тот же идентификатор клиента на тестовом или производственном сервере?

2- Если имя приложения отличается на странице входа в Google, означает ли это, что в моей организации Google уже есть проект, который устанавливает API аутентификации? Я полагаю, только администратор организации будет знать?

3- Как мне отладить это?

Вот более подробная информация о том, как я его построил:

  • Я использую вызов Javascript для входа в Google
  • После проверки подлинности я отправляю токен на страницу Aspx, которая проверяет целостность токена, используя GoogleJsonWebSignature.ValidateAsync.
  • После проверки токена я подтверждаю, что пользователь в моей базе данных разрешил вход в систему.

** РЕДАКТИРОВАТЬ **

Я обнаружил, что у меня есть ошибка на моем производственном сервере, которой у меня нет на моем локальном хосте:

System.TypeInitializationException: инициализатор типа для 'Google.Apis.Json.NewtonsoftJsonSerializer' вызвал исключение. ---> System.IO.FileLoadException: не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

1 Ответ

0 голосов
/ 16 июля 2018

Наконец, моя проблема не была связана с настройками идентификатора клиента Google, поэтому для ответа на мой вопрос я могу использовать один и тот же идентификатор клиента на своем локальном хосте и производственном сервере.

Ошибка заключалась в том, что в моем файле web.config на производственном сервере отсутствовала некоторая информация (поскольку этот файл не был опубликован вместе с остальной частью проекта). Поэтому я добавил это в свой web.config, чтобы он работал:

<runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="*********" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>
 </assemblyBinding>
</runtime>
...