web-app-runtime
npm install @it-enterprise/web-app-runtime
npm install
`
$3
`
npm run build
`
$3
`javascript
import Vue from 'vue'
import store from '@/store'
import model from '@/app-model'
import appRunner from '@it-enterprise/web-app-runtime'
import auth from '@it-enterprise/jwtauthentication'
import router from '@/router'
Vue.use(appRunner, {
store, // ref to vuex store
auth, // ref to authentication core
router, // ref to vue router
model // ref to application model
})
// attach event listeners to auth event bus
Vue.$authEventBus.onBeforeSignIn(() => {
store.commit('CLEAR_ERROR')
})
Vue.$authEventBus.onAfterSignIn(() => {
})
Vue.$authEventBus.onSignInError((message) => {
store.commit('SET_ERROR', message)
})
Vue.$authEventBus.onStartProcessing(() => {
store.commit('SET_PROCESSING', true)
})
Vue.$authEventBus.onEndProcessing(() => {
store.commit('SET_PROCESSING', false)
})
Vue.$authEventBus.onUpdateUserData(() => {
store.dispatch('SET_ADDITIONAL_DATA')
Vue.$authCore.SetUserRole('User')
})
`
$3
#### `Vue.$authCore`
|Name|Member type |Description|
|------|-----|-----------|
|`isAuthenticated` | property | `true` Пользователь авторизовался
`false` Анонимный пользователь |
|`userRole`| property | Роль пользователя в приложении |
|`userLogin`| property | Логин пользователя |
|`SignIn`| method | Аутентифицироваться
Агрументы: `params: { email:string, password:string, keepSigned:boolean }`|
|`SignOut`| method | Выход из системы |
|`SetUserRole`| method | Установить роль пользователя
Аргументы: `userRole:string` |
#### `Vue.$routerCore`
|Name|Member type |Description|
|------|-----|-----------|
|`UserRole` | property | Роль текущего пользователя (в том числе анонимного) |
|`GetSignInPage`| method | Получить страницу аутентификации |
|`HaveAccessToPage`| method | Проверка наличия доступа к странице
Аргументы: `page:AppPage` |
|`GetHomePage`| method | Получить домашнюю страницу (с учетом домашних страниц согласно ролей) |
|`GoToSignIn`| method |Перейти на страницу аутентификации |
|`GoToHomePage`| method |Перейти на домашнюю страницу (с учетом роли пользователя) |
|`SetAdditionalUserDataHandler`| method |Привязать функцию получения дополнительных данных о пользователе. Вызывается после аутентификации |
#### Шина событий аутентификации `Vue.$authEventBus`
Описание методов привязки к событиям:
|Name|Description|
|------|--|
|`onBeforeSignIn`| Срабатывает непосредственно перед аутентификацией |
|`onAfterSignIn`| Срабатывает непосредственно после успешной аутентификации |
|`onSignOut`| Срабатывает непосредственно после выхода пользователя из системы |
|`onSignInError`| Срабатывает при ошибке входа. Передаёт в обработчик текст ошибки |
|`onStartProcessing`| Срабатывает при старте любого обращения к API |
|`onEndProcessing`| Срабатывает при завершении обращения к API |
|`onUpdateUserData``| Срабатывает при получении данных о пользователе |