Я пишу приложение с интерфейсом в emberjs и backend/server-side на сервере nodejs. У меня emberjs настроен так, что пользователь может войти в систему/зарегистрироваться с сторонним Oauth (google, twitter, Facebook). У меня есть бэкэнд, написанный на сервере express nodejs, на котором размещены API RESTful.
У меня нет DB, связанного с emberjs, и я не думаю, что я должен так или иначе, потому что это строго клиентский код. Я планирую использовать JWT для связи между клиентской и серверной сторонами. Когда пользователь входит в систему со своим oauth-кредитом, я получаю объект JSON от поставщика с помощью uid, name, login, access_token и других деталей.
Я борюсь с выбором стратегии управления регистрацией пользователей. Нет процесса регистрации, поскольку он OAuth. Итак, поток - это если пользователь не находится в моем db, создайте его. Я не поддерживаю аутентификацию по электронной почте/паролю. Каким будет поток, когда пользователь впервые заходит с поставщиком OAuth? Должен ли emberjs отправлять все данные в бэкэнд на каждом знаке, чтобы бэкэнд мог добавлять новых пользователей в db?
Что должно быть частью моего тела JWT? Я думал, что uid и поставщик предоставили токен доступа. Одна из проблем, о которых я могу думать, заключается в том, что токен доступа конкретного поставщика может измениться. Пользователь может отменить маркер с сайта поставщика и снова зарегистрировать его с помощью emberjs.
Я открыт для написания front-end в любой другой стороне клиентской части JavaScript, если это упростит.