README
Модули
SSO
- SSO
- ~SSO
- .configure(config)
- .getSessionsMiddleware() ⇒
* - .getContextMiddleware() ⇒
loadContext - .isPasswordChangeAllowed(session) ⇒
boolean - .confirmPasswordChange() ⇒
boolean - .dropPasswordChangeAccess(next)
- .checkAuth(next)
- .checkMailActivation(next)
- .checkMobileActivation(next)
- .checkDocumentActivation(next)
- .signIn(next)
- .logout(next)
- .checkPermission(user, fileId) ⇒
*|boolean
- ~SSO
Методы
SSO
SSO~SSO
Kind: inner class of SSO
- ~SSO
- .configure(config)
- .getSessionsMiddleware() ⇒
* - .getContextMiddleware() ⇒
loadContext - .isPasswordChangeAllowed(session) ⇒
boolean - .confirmPasswordChange() ⇒
boolean - .dropPasswordChangeAccess(next)
- .checkAuth(next)
- .checkMailActivation(next)
- .checkMobileActivation(next)
- .checkDocumentActivation(next)
- .signIn(next)
- .logout(next)
- .checkPermission(user, fileId) ⇒
*|boolean
SSO.configure(config)
Настройка модуля(обязательно перед использованием) Настраивает логгер и соединение к бд Пример конфига:
{
"mongoose":{
"UsersUri": "mongodb://127.0.0.1/test_IStudentAPI",
"PSSUri": "mongodb://127.0.0.1/test_PSS",
"SSOUri": "mongodb://127.0.0.1/test_sso"
},
"sso":{
"session":{
"secret": "superSecretKey",
"key": "StudCloud:session:",
"cookie":{
"path": "/",
"maxAge":2592000000,
"httpOnly": true
}
}
},
"logs":{
"UAMS":{
"path": "/Users/anton/GitHub/SSO/logs/UAMS.log",
"label": "UAMS"
},
"SSO":{
"path": "/Users/anton/GitHub/SSO/logs/SSO.log",
"label": "SSO"
}
}
}
Kind: static method of SSO
| Param | Description |
|---|---|
| config | конфигурация типа nconf |
SSO.getSessionsMiddleware() ⇒ *
Получение миддлвера сессий
Kind: static method of SSO
Throws:
Error, модуль не был настроен
Example
app.use(SSO.getSessionsMiddleware();
SSO.getContextMiddleware() ⇒ loadContext
Получение миддлвера для загрузки контекста
Kind: static method of SSO
Throws:
Error, модуль не был настроен
Example
app.use(SSO.getContextMiddleware());
SSO.isPasswordChangeAllowed(session) ⇒ boolean
Проверка можно ли пользователю менять пароль
Kind: static method of SSO
Returns: boolean - , true - можно, false - нельзя
| Param | Description |
|---|---|
| session | объект типа koa-session |
SSO.confirmPasswordChange() ⇒ boolean
Миддлвер для валидации ключа для смены, если ключ верный, то метод isPasswordChangeAllowed будет возвращать true В this.state.passwordKey должен быть помещен ключ
Kind: static method of SSO
Returns: boolean - , true - ключ верный, false - ключ не верный
SSO.dropPasswordChangeAccess(next)
Миддлвер для сброса возможности менять пароль для данной сессии. Вызывается после смены пароля.
Kind: static method of SSO
| Param |
|---|
| next |
SSO.checkAuth(next)
Миддлвер для проверки авторизован ли пользователь или нет
Kind: static method of SSO
Throws:
AuthError, 405 - уровень авторизации недостаточен
this: SSO
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/doSomething', require('path/to/handler.js', SSO.checkAuth);
// path/to/handler.js
...
let a = b;
yield next;
// если все хорошо, продолжится выполнение
// если пользователь не авторизован, будет ошибка
// и управление попадет обработчику ошибок
...
SSO.checkMailActivation(next)
Миддлвер для проверки уровня авторизации(подтвердена либо почта, либо документ либо телефон)
Kind: static method of SSO
Throws:
AuthError, 405 - уровень авторизации недостаточен
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/doSomething', require('path/to/handler.js', SSO.checkMailActivation);
// path/to/handler.js
...
let a = b;
yield next;
// если уровень авторизации > 1, то продолжится выполнение
// иначе ошибка
// и управление попадет обработчику ошибок
...
SSO.checkMobileActivation(next)
Миддлвер для проверки уровня авторизации(подтверден либо документ, либо телефон)
Kind: static method of SSO
Throws:
AuthError, 405 - уровень авторизации недостаточен
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/doSomething', require('path/to/handler.js', SSO.checkMobileActivation);
// path/to/handler.js
...
let a = b;
yield next;
// если уровень авторизации > 2, то продолжится выполнение
// иначе ошибка
// и управление попадет обработчику ошибок
...
SSO.checkDocumentActivation(next)
Миддлвер для проверки уровня авторизации(подтверден документ)
Kind: static method of SSO
Throws:
AuthError, 405 - уровень авторизации недостаточен
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/doSomething', require('path/to/handler.js', SSO.checkMobileActivation);
// path/to/handler.js
...
let a = b;
yield next;
// если уровень авторизации > 3, то продолжится выполнение
// иначе ошибка
// и управление попадет обработчику ошибок
...
SSO.signIn(next)
Миддлвер для авторизации пользователя. Перед вызовом необходимо убедиться, что внутри this.authData находятся необходимые данные. Необходимые проперти - mail и password
Kind: static method of SSO
Throws:
AuthError, 401 - неверный парль
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/signIn', require('path/to/handler.js', SSO.signIn);
// path/to/handler.js
...
let a = b;
yield next;
// если все хорошо, продолжится выполнение
// если пароль не верный, будет ошибка
// и управление попадет обработчику ошибок
...
SSO.logout(next)
Миддлвер для авторизации пользователя
Kind: static method of SSO
Throws:
AuthError, 401 - неверный парль
| Param | Description |
|---|---|
| next | переход к следующему миддлверу |
Example
//router file
router.get('/logout', require('path/to/handler.js', SSO.logout);
// path/to/handler.js
...
let a = b;
yield next;
// если все хорошо, продолжится выполнение
// если пароль не верный, будет ошибка
// и управление попадет обработчику ошибок
...
SSO.checkPermission(user, fileId) ⇒ * | boolean
Проверка можно ли пользователю скачивать/просматривать файл
Kind: static method of SSO
Throws:
DbError, 404 - файл не найденDbError, 404 - если файл доступен только людям из группы и автор файла не был найден
| Param | Description |
|---|---|
| user | пользователь(объект типа user) |
| fileId | идентификатор файла для просмотра |