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.
globalMiddleware
Boolean
false
Ativa/desativa o middleware a ser usado globalmente.
enableMiddleware
Boolean
true
Ativa/desativa o middleware embutido.
stores.state.namespace
String
auth
Este é o espaço para o nome de usar para o Nuxt Usestate.
stores.pinia.enabled
Boolean
false
Habilite esta opção para usar a loja Pinia, BEY PADRÃO Este é desativado e useState
da Nuxt é usado.
stores.pinia.namespace
String
auth
Este é o espaço para o nome de usar para a loja Pinia.
stores.local.enabled
Boolean
true
Habilite esta opção para usar a loja LocalStorage.
stores.local.prefix
String
auth.
Isso define o prefixo LocalStorage.
stores.session.enabled
Boolean
true
Habilite esta opção para usar a loja SessionStorage.
stores.session.prefix
String
auth.
Semelhante à opção LocalStorage, este é o prefixo para armazenamento de sessão.
stores.cookie.enabled
Boolean
true
Habilite esta opção para usar o armazenamento de cookies.
stores.cookie.prefix
String
auth.
Semelhante à opção LocalStorage, este é o prefixo para o armazenamento de biscoitos.
stores.cookie.options
Object
{ path: '/' }
As opções de armazenamento de cookies padrão.
redirectStrategy
query | storage
storage
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.
tokenValidationInterval
Boolean | Number
false
Isso é 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.
resetOnResponseError
Boolean | Function
false
Quando 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:
clientWindow
Boolean
false
Ativar/desativar o uso de um pop -up para autenticação do cliente.
clientWidth
Number
400
A largura da janela do cliente.
clientHieght
Number
600
A largura da janela do cliente.
Aliases disponíveis para usar no Nuxt
#auth/runtime
#auth/utils
#auth/providers