@anzuev/studcloud.sso

SSO for StudCloud project.

Usage no npm install needed!

<script type="module">
  import anzuevStudcloudSso from 'https://cdn.skypack.dev/@anzuev/studcloud.sso';
</script>

README

Модули

SSO

Методы

  SSO

SSO~SSO

Kind: inner class of SSO

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 идентификатор файла для просмотра