Как мне сохранить аутентифицированных пользователей в моей базе данных при использовании API аутентификации?

Я понимаю, что это немного нубский вопрос, но я не совсем уверен, что это лучшее решение. У меня есть приложение REACT/Node.js, использующее API аутентификации (в данном случае Stormpath). Приложение работает. У меня есть логины для локальных пользователей, а также социальные логины для Facebook и Google. Но мое приложение будет иметь локальную базу данных (скорее всего, postgres), где мне нужно будет сохранить аутентифицированного пользователя, чтобы я мог связать вещи в своем приложении с этим пользователем, пока они вошли в систему. Как мне это сделать или я думаю, где я должен это делать? Должна ли моя целевая страница (после входа в систему) иметь какое-то динамическое событие (загрузка страницы или что-то еще), которое вызывает какое-либо промежуточное программное обеспечение для вставки или проверки существующего пользователя? Есть ли какая-то ловушка, которую мне может не хватать в моем провайдере API, где я могу просто захватить пользователя. Я просмотрел, но не смог активировать какие-либо конечные точки промежуточного программного обеспечения, которые я настроил в своем приложении, из того, что я считаю конечными точками Auth API, которые предоставили бы информацию о пользователе, которую я ищу. Если бы я мог просто добраться до своего промежуточного программного обеспечения, у меня не было бы проблем с написанием функции для вставки/проверки пользователя в моей локальной базе данных. На самом деле я уже написал и протестировал это, поэтому я знаю, что это работает. Мне просто нужен небольшой совет или кто-то, кто подтолкнет меня в правильном направлении. Я работаю самостоятельно без какой-либо помощи прямо сейчас, поэтому любой совет будет принят с благодарностью.

К вашему сведению, я использую Stormpath-sdk-react.


person Puerto    schedule 02.01.2017    source источник
comment
В ответ может показаться, что я установил что-то в 'componentDidMount()', чтобы что-то выполнить при загрузке страницы. Я просто не уверен, что это хороший «дизайн» для архитектуры веб-приложений.   -  person Puerto    schedule 02.01.2017


Ответы (2)


В React есть различные функции жизненного цикла, такие как componentWillMount() и componentDidMount(). В componentWillMount() вы можете нажать Api или использовать локальную базу данных и проверить аутентифицированного пользователя, а в componentDidMount() вы можете отменить запрос.

componentWillMount() вызывается перед render() и componentDidMount() после render()

person Codesingh    schedule 02.01.2017
comment
Итак, если ваш пользователь успешно прошел аутентификацию из API, будет ли вызов функции в вашем приложении для вставки/проверки пользователя в вашей локальной базе данных обычно выполняться в функции componentDidMount() в React? - person Puerto; 02.01.2017
comment
да, вы можете выполнять операции CRUD в componentDidMount() - person Codesingh; 02.01.2017

Вы не говорите, какой фреймворк вы используете. Если это Express, вы можете использовать Express-Stormpath. Также, когда вы используете React, вы можете использовать stormpath-sdk-react. чтобы помочь вам с интеграцией API. Когда вы получаете информацию о пользователе во внешнем интерфейсе, вы можете использовать ее для связи с вашей пользовательской конечной точкой на бэкэнде для хранения любой информации, которая вам нужна. Другой способ сделать это — использовать конечные точки Stormpath на вашем бэкэнде и использовать полученные данные для отправки их на ваш внешний интерфейс. Вы можете сделать это в обоих направлениях.

Видеть:

person rsp    schedule 02.01.2017
comment
Извинения. Я обновлю свой исходный пост с конкретной структурой. Я использую stormpath-sdk-реагировать. Это все работает и было относительно легко настроить. Я просто пытаюсь понять, что я делаю с авторизованным пользователем Stormpath, чтобы поместить его в мою базу данных. Мне нужно начать связывать опыт пользователей с моей локальной базой данных. Я не был точно уверен, где лучше всего захватить пользователя. Похоже, что componentDidMount() будет работать для первоначальной вставки/проверки локального пользователя БД. - person Puerto; 02.01.2017