Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ushliypakostnik/express-auth
Express full auth backend module with localization on MongoDB from mLab and Express-Mailer.
https://github.com/ushliypakostnik/express-auth
auth authentication babel eslint express express-mailer i18next jest jwt mlab mongodb mongoose passport passport-facebook passport-vkontakte password social-login
Last synced: about 2 months ago
JSON representation
Express full auth backend module with localization on MongoDB from mLab and Express-Mailer.
- Host: GitHub
- URL: https://github.com/ushliypakostnik/express-auth
- Owner: ushliypakostnik
- Created: 2019-09-02T08:51:16.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T15:06:09.000Z (about 2 years ago)
- Last Synced: 2023-02-27T23:12:03.603Z (almost 2 years ago)
- Topics: auth, authentication, babel, eslint, express, express-mailer, i18next, jest, jwt, mlab, mongodb, mongoose, passport, passport-facebook, passport-vkontakte, password, social-login
- Language: JavaScript
- Homepage:
- Size: 1.14 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Backend Auth Module
===================Описание
--------Написанный на Express.js с Babel модуль полноценной аутентификации через JWT и Passport, использующий удаленную MongoDB с mLab и Express-Mailer.
Примеры клиентских приложений
-----------------------------* Репозиторий: [Create React App based frontend boilerplate](https://github.com/ushliypakostnik/react-auth), демонстрация: [https://react-auth.kafedra.org/](https://react-auth.kafedra.org/)
* Репозиторий: [Vue cli based frontend boilerplate](https://github.com/ushliypakostnik/vue-auth), демонстрация: [https://vue-auth.kafedra.org/](https://vue-auth.kafedra.org/)
### Локализация
Сообщения об ошибках и письма направляются пользователю на языке выбранном в момент отравки запроса на клиенте.
API
---POST { body : { user: { usermail, password } } }
(optional, everyone has access)
${HOST}/api/user/loginОбщедоступный роут выдающий аутентификацию пользователю по адресу электронной почты и паролю и/или регистрирующий пользователя если такого емейла нет в базе.
*
GET
(optional, everyone has access)
${HOST}/api/user/facebookGET
(optional, everyone has access)
${HOST}/api/user/vkontakteОбщедоступные роуты позволяющие получить аутентификацию через социальные сети Facebook и VKontakte. Если полученного от соцсети адреса электронной почты пользователя нет в базе - он добавляется в нее.
*
POST { user: { id } }
(authentication required)
${HOST}/api/user/send-verify-emailЗащищенный роут позволяющий отправить письмо о верификации аккаунта пользователя с переданным айди
*
POST { body: { id } }
(optional, everyone has access)
${HOST}/api/user/verifyОбщедоступнй роут позволяющий верифицировать аккаунт пользователя по полученному айди
*
POST { body: { usermail } }
(optional, everyone has access)
${HOST}/api/user/remindОбщедоступный роут позволяющий отправить письмо со ссылкой на востановление пароля по переданному адресу электронной почты
*
POST { body: { user: { id, password } } }
(authentication required)
${HOST}/api/user/passwordЗащищенный роут позволяющий создать новый пароль для пользователя по переданному айди
*
GET { user: { id } }
(authentication required)
${HOST}/api/user/profileЗащищенный роут возвращающий профиль пользователя по переданому айди
*
GET { user: { id } }
(authentication required)
${HOST}/api/user/logoutЗащищенный роут прерывающий аутентификацию
*
GET
${HOST}/testТестовый роут
*
Deploy
------Установка зависимостей npm packages
$ npm install
Development
-----------$ npm start
http://localhost:8082/
Production
----------Запуск проекта для продакшена
$ npm run prod
Тесты
-----Запуск линтера
$ npm run lint
Запуск тестов
$ npm run test