Português (Portugal)
  • js
  • next
  • next-auth
  • auth.js

Migrando de NextAuth.js v4 para Auth.js v5

Um guia para migrar a integração do Logto de NextAuth.js v4 para v5.

Sijie
Sijie
Developer

A versão 5 do NextAuth.js é uma reescrita major do pacote next-auth, que traz atualizações disruptivas que afetam várias integrações, incluindo o Logto. Este guia irá orientá-lo no processo de migração da sua integração com o Logto de NextAuth.js v4 para Auth.js v5.

Entendendo as mudanças

Auth.js v5

NextAuth.js v5 introduz várias mudanças disruptivas, a principal mudança que afeta a maneira como você integra o Logto na sua aplicação é a mudança em "OIDC/OAuth Providers". Na documentação oficial, diz-se que "Auth.js agora baseia-se em @auth/core com uma conformidade mais rigorosa com a especificação OAuth/OIDC, o que pode quebrar alguns provedores OAuth existentes". Para os utilizadores do Logto, isso significa que é necessário atualizar a configuração do provedor.

Para mais informações sobre as mudanças, pode consultar o guia oficial de migração.

Configuração do provedor Logto

A configuração do provedor Logto foi atualizada:

  • O tipo foi alterado de oauth para oidc.
  • O endpoint wellKnown foi removido e você precisa fornecer o campo issuer em vez disso.
  • Não é necessário especificar o algorítmo de assinatura do id_token, agora ele suporta ES384 e será detectado automaticamente.

Guia passo a passo para migração

Atualize a configuração do provedor no ficheiro pages/api/auth/[...nextauth].js com o novo modelo de configuração:

Passo 1: Alterar o tipo de provedor

Altere o tipo de provedor de oauth para oidc.

Passo 2: Adicionar o campo issuer

Adicione o campo issuer na configuração do provedor. Pode obter o valor do issuer na página de Detalhes da Aplicação Logto, no campo "Issuer endpoint". Deve ser algo como https://xxxx.logto.app/oidc se estiver a utilizar o serviço cloud do Logto.

E depois pode remover o campo wellKnown.

Passo 3: Remover o algoritmo de assinatura id_token_signed_response_alg

Já não precisa especificar o algoritmo de assinatura do id_token_signed_response_alg na configuração do provedor. Agora ele suporta ES384 e será detectado automaticamente.

Atualizar o projeto

Após atualizar a configuração do provedor, precisa atualizar o pacote next-auth para a v5, siga o guia oficial de migração para atualizar o pacote e certifique-se que a sua aplicação funciona conforme esperado.