Я создал приложение React Native, которое использует мое приложение Rails в качестве задней части, и я дошел до того, что мне нужно получить работу аутентификации. Пользователь должен иметь возможность входа в систему так же, как и через приложение rails, которое использует Devise. Я не понимаю, как реализовать это в React Native/iOS.
Как я могу добавить свои рельсы для разработки входа/регистрации в приложение React Native?
Ответ 1
вам нужно использовать аутентификацию токена. Посмотрите раздел "Аутентификация" этого большого учебника, вы найдете базовую реализацию с помощью Devise: http://fancypixel.github.io/blog/2015/01/28/react-plus-flux-backed-by-rails-api/
В принципе, как только вы настроили аутентификацию маркера на бэкэнд, вы поместите форму для входа в свое реагирующее собственное приложение, после чего вы отправляете кредиты на бэкэнд и получаете токен, который вы затем сохраняете в своем состоянии приложения ( или вы можете сохранить его в asyncstore). Затем вы присоединяете токен к каждому запросу в бэкэнд в HTTP-заголовке.
Ответ 2
Вы также можете просто выполнить базовую авторизацию. React Native сохраняет cookie для вас, как обычный браузер. Единственное, что вам нужно - это сохранить токен CSRF, чтобы вы могли делать запросы "post". Если вам нужно только "получить", вам даже не нужен токен csrf.
Ответ 3
Я написал примерный проект, который показывает, как аутентифицироваться через React Native Webview для входа в существующий бэкэнд. https://github.com/ryanmcdermott/react-native-login
Ответ 4
Взгляните на эту статью, где я подробно написал, как ее достичь:
В принципе, вам нужно использовать систему проверки подлинности на основе токенов. Для части Rails вы можете использовать драгоценный камень, как простой-токен-auth. Он распространяется на Devise и добавляет обратно в него систему Token.
Как только это будет сделано, вы можете использовать вызов fetch, чтобы отправить свое имя пользователя и пароль и вернуть Token с сервера, который вы можете сохранить в магазине. Целесообразно использовать Redux для сценариев, подобных этому.
Затем вы можете использовать токен для отправки всех дальнейших запросов для доступа к аутентифицированным маршрутам.