From 0cf23874d57178b85610a353afff9b9a3b3ab33d Mon Sep 17 00:00:00 2001 From: levon Date: Sun, 15 Sep 2019 00:55:10 +0300 Subject: [PATCH] redo readme and user routs --- README.md | 88 +++++++++++++++++++++++++++++++++++++++++----- routes/api/user.js | 6 ++-- 2 files changed, 83 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d7fdc1a..026404a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,79 @@ -Backend project -=============== +Backand Auth Module +=================== -Express with MongoDB from mLab and Express-Mailer. +Описание +-------- + +Написанный на Express.js с Babel модуль полноценной аутентификации через JWT и Passport, использующий удаленную MongoDB с mLab и Express-Mailer. + + +Примеры клиентских приложений +----------------------------- + +* [Create React App based](https://github.com/ushliypakostnik/react-auth) + +* [Vue cli based](https://github.com/ushliypakostnik/vue-auth) + + +API +--- + + POST { body : { user: { usermail, password } } } + (optional, everyone has access) + ${HOST}/api/user/login + Общедоступный роут выдающий аутентификацию пользователю по адресу электронной почты и паролю или регистриющиющий пользователя если такого емейла нет в базе. + + + GET + (optional, everyone has access) + ${HOST}/api/user/facebook + + GET + (optional, everyone has access) + ${HOST}/api/user/vkontakte + + Общедоступные роуты позволяющие получить аутентификацию через социальные сети Facebook и VKontakte. Если полученного от соцсети адреса электронной почты пользователя нет в базе - он добавляется в нее. + + + POST { user: { id } } + (authentification required) + ${HOST}/api/user/send-verify-email + Защищенный роут позволяющий отправить письмо о верификации аккаунта пользователя с переданным емейлом + + + POST { body: { id } } + (authentification required) + ${HOST}/api/user/verify + Роут позволяющий верифицировать аккаунт пользователя по полученному айди + + + POST { body: { usermail } } + (optional, everyone has access) + ${HOST}/api/user/remind + Общедоступный роут позволяющий отправить письмо со ссылкой на востановление пароля по переданному адресу электронной почты + + + POST { body: { user: { id, password } } } + (authentification required) + ${HOST}/api/user/password + Защищенный роут позволяющий создать новый пароль для пользователя по переданному айди + + + GET { user: { id } } + (authentification required) + ${HOST}/api/user/profile + Защищенный роут возвращающий профиль пользователя по переданому айди + + + GET { user: { id } } + (authentification required) + ${HOST}/api/user/logout + Защищенный роут прерываюший аунтентификацию + + + GET + ${HOST}/test + Тестовый роут Deploy @@ -11,17 +83,17 @@ Deploy $ npm install -Запуск сервера для разработки ------------------------------ +Development +----------- $ npm start http://localhost:8082/ -Cборка ------- +Production +---------- -Сборка проекта в продакшен +Запуск проекта для продакшена $ npm run prod diff --git a/routes/api/user.js b/routes/api/user.js index 23e240f..827a8af 100644 --- a/routes/api/user.js +++ b/routes/api/user.js @@ -164,7 +164,7 @@ router.post('/send-verify-email', auth.required, jsonParser, (req, res, next) => // POST Verify account -router.post('/verify', auth.optional, jsonParser, (req, res, next) => { +router.post('/verify', auth.required, jsonParser, (req, res, next) => { const { id } = req.body; return User.findOneAndUpdate({ _id: id }, @@ -178,7 +178,7 @@ router.post('/verify', auth.optional, jsonParser, (req, res, next) => { // POST Remind password -router.post('/remind', auth.optional, jsonParser, (req, res, next) => { +router.post('/remind', auth.required, jsonParser, (req, res, next) => { const { body: { usermail } } = req; const { client } = req.headers; @@ -198,7 +198,7 @@ router.post('/remind', auth.optional, jsonParser, (req, res, next) => { // POST Set new password -router.post('/password', auth.optional, jsonParser, (req, res, next) => { +router.post('/password', auth.required, jsonParser, (req, res, next) => { const { body: { user: { id, password } } } = req; User.findOne({ _id: id }, (err, user) => {