Совместное использование идентичного идентификатора между существующим веб-сайтом MVC и приложением ReactNative - PullRequest
0 голосов
/ 18 января 2019

Цель : У меня есть существующий веб-сайт ASP.NET MVC, созданный пару лет назад, и я хотел бы поделиться управлением идентификацией с новым приложением ReactNative, которое я создаю.

Я бы хотел, чтобы пользователи могли входить как в сеть, так и в приложение, и иметь бесшовную интеграцию, используя одного и того же пользователя на обеих сторонах. Он также должен поддерживать вход в систему через Facebook и Google+, который в настоящее время поддерживается веб-сайтом ASP.NET MVC с использованием входящего в комплект Oauth2 OWIN входа.

Чтобы снизить затраты, я хотел бы использовать функцию Azure для максимально возможного / всех вызовов, используемых в приложении ReactNative.

Задача

Я немного озадачен тем, как это будет работать, поскольку он так тесно связан с проектом ASP.NET MVC, во всех частях (вход в систему, регистрация, изменение пароля, забытый пароль и т. Д.) Используется встроенный Методы аутентификации ASP.NET с использованием SignInManager и т. Д.

план

Мой план состоял в том, чтобы сделать следующее, но я был бы очень признателен всем, кто может дать мне какие-либо идеи, в частности.

  1. Расскажите мне о лучшем способе сделать это
  2. Скажите мне, если / почему я глуп или неуверен с моим текущим планом
  3. Будет ли это даже работать
  4. Любые другие предложения о том, как решить проблему более элегантным способом

Мой план следующий:

  • Используйте функции Azure для всего, например, Вход в систему, регистрация и т. Д., Что делает его масштабируемым, а также очень дешевым и не требует установки другого сервера где-нибудь

  • Добавьте функцию Azure для входа в систему, которая принимает имя пользователя и пароль, функция выполняет хэш предоставленного пароля и проверяет базу данных на наличие соответствующего имени пользователя, если пароль совпадает, тогда предоставьте JWT, который позволит любые дальнейшие вызовы для передачи этого в качестве маркера-носителя для аутентифицированных запросов.

  • Добавьте функцию Azure в регистр, которая будет принимать обычные данные, имя пользователя, адрес электронной почты и т. Д. Функция проверит БД, чтобы увидеть, существует ли пользователь, если это так, выдает исключение, если нет, то вручную добавьте запись в таблицу asp_users, а затем отправьте обратно JWT с токеном, необходимым для любых будущих аутентифицированных запросов.

  • Что касается аутентификаций в Facebook и Google+, я планировал использовать их SDK JavaScript для аутентификации, а затем отправить код доступа, предоставленный функции Azure. Затем его можно использовать для запроса к Facebook / Google API для получения адресов электронной почты, если адрес электронной почты существует, то верните их данные в токене JTW, если не создадите пользователя, а затем отправьте обратно токен. Я не знаю, будет ли это работать с настройкой MVC, однако, если пользователь затем пытается войти в систему с помощью Интернета?

  • Все токены JTW будут содержать имя пользователя, так что любые предпринятые действия могут быть проверены / записаны в отношении этого пользователя в течение срока действия токена, или они выйдут из системы и потребуют повторного входа.

Заранее большое спасибо, я уже почти 2 месяца чесал голову и до сих пор не решился на самом деле делать кодирование. Моя цель состояла в том, чтобы завершить работу над приложением к весне, но мне нужно выяснить эту важную часть, прежде чем я смогу двигаться дальше.

Заранее большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...