import { LoginForm, RecoverForm, RegisterForm, ChangePasswordForm } from '@startupjs/auth-local'
import Joi from '@hapi/joi'
import { Button } from '@startupjs/ui'
Локальная авторизация
Инициализация главного модуля
Настройка главного модуля
Требования
@startupjs/auth: >= 0.33.0-alpha.0
text-encoding-polyfill: >= 0.6.7
Инициализация дополнительных модулей
В корневом index.js добавить:
import 'text-encoding-polyfill'
Инициализация на сервере
Импорт стратегии:
import { Strategy as LocalStrategy } from '@startupjs/auth-local/server'
initAuth(ee, {
strategies: [
new LocalStrategy({
onCreatePasswordResetSecret: (userId, secret) => {
},
onPasswordReset: userId => {
},
onPasswordChange: userId => {
},
onCreateEmailChangeSecret: (userId, secret) => {
},
onEmailChange: userId => {
}
})
]
})
LoginForm
Форма для авторизации
import { LoginForm } from '@startupjs/auth-local'
Принимает пропсы:
- baseUrl: задать base url для формы
- redirectUrl: задать redirect url после авторизации
- onSuccess: callback вызывается после успешной авторизации
- onError: callback вызывается при ошибке авторизации
- onChangeSlide: получает имя слайда после клика на actions
return <LoginForm />
Кастомизация:
Пропсы для кастомизации:
- properties: работает по принципу
properties
из ObjectInput, можно добавить новые поля или заоверайдить стандартные - validateSchema: проп для описания joi схемы, передавать нужно объект как в примере. Так же, если добавляется новая форма, для нее всегда должна быть описана схема
- renderActions: функция которая возвращает новую верстку для actions
function renderActions ({ onSubmit }) {
return pug`
Button(
style={ marginTop: 16 }
onPress=onSubmit
) Login
`
}
return pug`
LoginForm(
properties={
age: {
input: 'number',
label: 'Age',
placeholder: 'Enter your age'
}
}
validateSchema={
age: Joi.number()
.required()
.messages({
'any.required': 'Fill in the field',
'string.empty': 'Fill in the field'
})
}
renderActions=renderActions
)
`
RegisterForm
Форма для регистрации
import { RegisterForm } from '@startupjs/auth-local'
Принимает пропсы:
- baseUrl: задать base url для формы
- redirectUrl: задать redirect url после авторизации
- onSuccess: callback вызывается после успешной авторизации
- onError: callback вызывается при ошибке авторизации
- onChangeSlide: получает имя слайда после клика на actions
return <RegisterForm />
Кастомизация:
Пропсы для кастомизации:
- properties: работает по принципу
properties
из ObjectInput, можно добавить новые поля или заоверайдить стандартные - validateSchema: проп для описания joi схемы, передавать нужно объект как в примере. Так же, если добавляется новая форма, для нее всегда должна быть описана схема
- renderActions: функция которая возвращает новую верстку для actions
function renderActions ({ onSubmit }) {
return pug`
Button(
style={ marginTop: 16 }
onPress=onSubmit
) Sign In
`
}
return pug`
RegisterForm(
properties={
age: {
input: 'number',
label: 'Age',
placeholder: 'Enter your age'
}
}
validateSchema={
age: Joi.number()
.required()
.messages({
'any.required': 'Fill in the field',
'string.empty': 'Fill in the field'
})
}
renderActions=renderActions
)
`
RecoverForm
Форма для смены пароля
import { RecoverForm } from '@startupjs/auth-local'
return <RecoverForm />