Módulo de autenticação alternativo para nuxt
Este módulo é uma alternativa a @nuxtjs/auth, exceto que isso é para o Nuxt3 apenas sem suporte de compatibilidade com versões anteriores.
@nuxt-alt/auth e @nuxt-alt/http dependência ao seu projeto yarn add @nuxt-alt/auth @nuxt-alt/http@nuxt-alt/auth e @pinia/nuxt à seção de modules de nuxt.config.ts Nota: Você não precisa especificar @nuxt-alt/http , ele será adicionado automaticamente, mas se você deseja adicioná-lo manualmente, verifique se está abaixo do módulo de autenticação (e acima do módulo proxy se estiver usando). Ele também não precisa de Pinia, usará o uso useState do Nuxt por padrão.
export default defineNuxtConfig ( {
modules : [
'@nuxt-alt/auth'
] ,
auth : {
/* module options */
}
} ) ; Leia a documentação
O módulo agora usa '@nuxt-alt/http' para funcionar, esse módulo estende ohmyfetch. Observe que, se você estava usando data para publicar dados, agora precisará usar body pois é isso que ohmyfetch usa. Se você pretende usar o SSR, considere usar o módulo @nuxt-alt/proxy .
Um useAuth() composto está disponível para acessar os métodos de autenticação.
A maioria das opções é tirada diretamente do módulo @nuxtjs/auth. Além disso, existem algumas opções extras disponíveis.
globalMiddlewareBooleanfalseAtiva/desativa o middleware a ser usado globalmente.
enableMiddlewareBooleantrueAtiva/desativa o middleware embutido.
stores.state.namespaceStringauthEste é o espaço para o nome de usar para o Nuxt Usestate.
stores.pinia.enabledBooleanfalse Habilite esta opção para usar a loja Pinia, BEY PADRÃO Este é desativado e useState da Nuxt é usado.
stores.pinia.namespaceStringauthEste é o espaço para o nome de usar para a loja Pinia.
stores.local.enabledBooleantrueHabilite esta opção para usar a loja LocalStorage.
stores.local.prefixStringauth.Isso define o prefixo LocalStorage.
stores.session.enabledBooleantrueHabilite esta opção para usar a loja SessionStorage.
stores.session.prefixStringauth.Semelhante à opção LocalStorage, este é o prefixo para armazenamento de sessão.
stores.cookie.enabledBooleantrueHabilite esta opção para usar o armazenamento de cookies.
stores.cookie.prefixStringauth.Semelhante à opção LocalStorage, este é o prefixo para o armazenamento de biscoitos.
stores.cookie.optionsObject{ path: '/' }As opções de armazenamento de cookies padrão.
redirectStrategyquery | storagestorage O tipo de estratégia de redirecionamento que você deseja usar, storage utiliza localização para redirecionamentos, query utilizando os parâmetros de consulta de rota.
tokenValidationIntervalBoolean | NumberfalseIsso é experimental. Se definido como true, o intervalo padrão é de 1000ms, caso contrário, defina o tempo em milissegundos. É com que frequência o módulo com tentativa de validar o token para expiração.
resetOnResponseErrorBoolean | FunctionfalseQuando ativado, ele será redefinido quando houver um erro 401 em qualquer uma das respostas. Você é capaz de transformar isso em uma função para lidar com isso você mesmo:
auth: {
//... module options
resetOnResponseError : ( error , auth , scheme ) => {
if ( error . response . status === 401 ) {
scheme . reset ?. ( )
auth . redirect ( 'login' )
}
} ,
} As informações do usuário podem ser editadas como para o TypeScript:
declare module '@nuxt-alt/auth' {
interface UserInfo {
email : string
name : string
}
} Além dos tokens de autenticação;
Por padrão, o $auth.strategy getter usa o tipo de Scheme que não possui tipos de propriedade token ou refreshToken . Para ajudar com isso, uma $auth.refreshStrategy e um $auth.tokenStrategy getter foram adicionados para digitar. Todos eles fazem a mesma coisa, isso é apenas para o tipo sugestão.
OAuth2 agora tem autenticação da janela do cliente graças a esta solicitação de puxar: Nuxt-Community/Auth-Module#1746
As propriedades foram alteradas para:
clientWindowBooleanfalseAtivar/desativar o uso de um pop -up para autenticação do cliente.
clientWidthNumber400A largura da janela do cliente.
clientHieghtNumber600A largura da janela do cliente.
Aliases disponíveis para usar no Nuxt
#auth/runtime#auth/utils#auth/providers