Skip to content

Commit

Permalink
redo readme and user routs
Browse files Browse the repository at this point in the history
  • Loading branch information
ushliypakostnik committed Sep 14, 2019
1 parent 02ebea6 commit 0cf2387
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 11 deletions.
88 changes: 80 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -11,17 +83,17 @@ Deploy

$ npm install

Запуск сервера для разработки
-----------------------------
Development
-----------

$ npm start

http://localhost:8082/

Cборка
------
Production
----------

Сборка проекта в продакшен
Запуск проекта для продакшена

$ npm run prod

Expand Down
6 changes: 3 additions & 3 deletions routes/api/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
Expand All @@ -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;

Expand All @@ -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) => {
Expand Down

0 comments on commit 0cf2387

Please sign in to comment.