Альтернативный модуль автоза
Этот модуль предназначен как альтернатива @nuxtjs/auth, за исключением того, что он предназначен для Nuxt3 только без поддержки обратной совместимости.
@nuxt-alt/auth и @nuxt-alt/http зависимость в ваш проект yarn add @nuxt-alt/auth @nuxt-alt/http@nuxt-alt/auth и @pinia/nuxt в раздел modules nuxt.config.ts Примечание. Вам не нужно указывать @nuxt-alt/http , он будет автоматически добавлен, но если вы хотите вручную добавить его, убедитесь, что он находится ниже модуля Auth (и над прокси-модулем, если вы его используете). Он также не нуждается в Pinia, он будет использовать Uxt's useState по умолчанию.
export default defineNuxtConfig ( {
modules : [
'@nuxt-alt/auth'
] ,
auth : {
/* module options */
}
} ) ; Прочтите документацию
Модуль теперь использует функцию «@nuxt-alt/http», этот модуль расширяет Ohmyfetch. Обратите внимание, что если вы использовали data для публикации данных, теперь вам нужно использовать body , так как это то, что использует ohmyfetch . Если вы собираетесь использовать SSR, пожалуйста, рассмотрите возможность использования модуля @nuxt-alt/proxy .
Компонируемый useAuth() является доступным для доступа к методам AUTH.
Большинство вариантов взяты непосредственно из модуля @nuxtjs/auth. Кроме того, есть некоторые дополнительные варианты.
globalMiddlewareBooleanfalseВключает/отключает промежуточное программное обеспечение для использования во всем мире.
enableMiddlewareBooleantrueВключает/отключает встроенное промежуточное программное обеспечение.
stores.state.namespaceStringauthЭто пространство имен для использования для Nuxt Usestate.
stores.pinia.enabledBooleanfalse Включите эту опцию, чтобы использовать магазин Pinia, Bey Default Это отключено, и вместо этого используется useState Nuxt.
stores.pinia.namespaceStringauthЭто пространство имен для использования для магазина Pinia.
stores.local.enabledBooleantrueВключите эту опцию, чтобы использовать магазин LocalStorage.
stores.local.prefixStringauth.Это устанавливает префикс LocalStorage.
stores.session.enabledBooleantrueВключите эту опцию, чтобы использовать магазин SessionStorage.
stores.session.prefixStringauth.Подобно опции LocalStorage, это префикс для хранения сеанса.
stores.cookie.enabledBooleantrueВключите эту опцию, чтобы использовать хранилище cookie.
stores.cookie.prefixStringauth.Подобно опции LocalStorage, это префикс для хранения файлов cookie.
stores.cookie.optionsObject{ path: '/' }Параметры хранения файлов cookie по умолчанию.
redirectStrategyquery | storagestorage Тип стратегии перенаправления, которую вы хотите использовать, storage , LocalStorage для перенаправлений, query с использованием параметров запроса маршрута.
tokenValidationIntervalBoolean | NumberfalseЭто экспериментально. Если установить на TRUE, интервал по умолчанию составляет 1000 мс, в противном случае установленное время в миллисекундах. Вот как часто модуль с попыткой проверить токен для истечения.
resetOnResponseErrorBoolean | FunctionfalseПри включении он будет сброшен, когда в любом из ответов произойдет ошибка 401. Вы можете превратить это в функцию, чтобы справиться с этим самостоятельно:
auth: {
//... module options
resetOnResponseError : ( error , auth , scheme ) => {
if ( error . response . status === 401 ) {
scheme . reset ?. ( )
auth . redirect ( 'login' )
}
} ,
} Информация пользователя может быть отредактирована так для TypeScript:
declare module '@nuxt-alt/auth' {
interface UserInfo {
email : string
name : string
}
} В дополнение к токенам Auth;
По умолчанию $auth.strategy Getter использует тип Scheme , который не имеет token или refreshToken типов свойств. Чтобы помочь с этим, были добавлены $auth.refreshStrategy и $auth.tokenStrategy getter. Все они делают то же самое, это просто предназначено для подсказки типа.
OAUTH2 теперь имеет аутентификацию в окне клиента благодаря этому запросу на привлечение: Nuxt-Community/Auth-Module#1746
Свойства были изменены на:
clientWindowBooleanfalseВключить/отключить использование всплывающего окна для аутентификации клиента.
clientWidthNumber400Ширина окна клиента.
clientHieghtNumber600Ширина окна клиента.
Доступные псевдонимы для использования в Nuxt
#auth/runtime#auth/utils#auth/providers