аутентификация auth0 для реакции-native-ios, которая взаимодействует с сервером php

Я создаю приложениеact-native-ios, которое взаимодействует с веб-приложением php, размещенным на Azure.

Как я понимаю, это работает:

  1. Пользователь регистрируется в приложении, сервер связывается с сервером auth0, который затем возвращает токен JWT на сервер php, сохраняет токен в базе данных и затем отправляет токен обратно клиентскому устройству, где он затем сохраняется на устройстве.
  2. Пользователь должен отправлять токен JWT в качестве заголовка при каждой связи с сервером.
  3. Всякий раз, когда пользователь выходит из системы, токен удаляется, а при входе в систему должен быть получен новый JWT.

Пользователь может войти с помощью учетных данных, которые совпадают с данными в базе данных, или войти с помощью Google или Facebook.

Или Auth0 предназначен только для входа в такие предприятия, как Google, или я могу использовать его для входа в мое приложение, также имеющее учетные данные для входа в базу данных?

Я нашел
NMP реагировать-родной-блокировки-IOS но это не работает так, как я описал выше.

Итак, как мне поступить, и правильно ли то, что я объяснил выше?

0

Решение

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

  1. Ваш пользователь выберет один из многих провайдеры идентификации, поддерживаемые Auth0(например, Facebook, Twitter, LinkedIn, SAML, WS Federate и т. д.).
  2. Ваше собственное приложение будет напрямую общаться с Auth0 API сквозь реагировать родной замок.
  3. Auth0 будет взаимодействовать с выбранным провайдером и перенаправлять пользователя на страницу авторизации в этом провайдере (если это необходимо, и пользователь впервые входит в систему).
  4. Auth0 создаст JWT и отправит обратно в ваше собственное приложение.
  5. Ваше собственное приложение реагирует отправит этот JWT на сервер (обычно на Authorization HTTP header) при выдаче запросов на ваши конечные точки.
  6. Ваш бэкэнд PHP проверит, действительно ли этот JWT действителен. Это можно сделать с помощью Auth0 PHP SDK.
  7. Если отправленный JWT не был изменен (изменен нерегулярно), ваш бэкэнд примет его в качестве идентификатора пользователя и ответит на запрос, как ожидается вашим собственным приложением реагирования.

Как вы можете заметить, самая большая проблема в подходе, который, по вашему мнению, вы бы использовали, заключается в том, что процесс входа в систему не проходит через ваш бэкэнд-сервер. Это происходит в вашем внешнем приложении (реагирует на нативное), связываясь с Auth0 и выбранным поставщиком удостоверений.

JWT — это токены, которые содержат информацию (утверждения) о предмете. Эти токены могут быть проверены любым, кто обладает ключом (публичный или частный). То есть, имея этот ключ, вы можете проверить токен и быть уверенным, что он не был изменен ненадлежащим образом.

Более того, чтобы ответить на вопрос об использовании Auth0 с учетными данными в вашей базе данных, вы можете поспорить, что вы можете его использовать. Auth0 предоставляет способы интеграции с вашей собственной базой данных для проверки существования пользователя. Это называется пользовательский магазин.

Счастливого обучения.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector