/ / Compartilhar sessão entre dois aplicativos de nó - node.js, mongodb, passport.js

Compartilhar sessão entre dois aplicativos de nó - node.js, mongodb, passport.js

Eu tenho um aplicativo de nó que está usandopassport-local-mongoose para autenticação. Eu tenho um aplicativo de segundo nó que é servido em um iframe do primeiro aplicativo. Eu gostaria de proteger as rotas expressas no segundo aplicativo com a mesma sessão do primeiro aplicativo para que o usuário faça o login apenas uma vez, mas o rotas expressas no segundo aplicativo ainda estão protegidas. Existe uma maneira de os dois aplicativos de nó compartilharem uma sessão? Ou talvez haja outra abordagem?

Obrigado.

Respostas:

0 para resposta № 1

A maneira mais fácil que eu posso pensar seria simplesmentearmazenar sessões no MongoDB. Em seguida, o middleware do seu segundo aplicativo poderia verificar a sessão passada na solicitação no mesmo banco de dados. A desvantagem dessa abordagem é que você precisa implementar algumas das mesmas lógicas de autenticação em dois locais.

Talvez ainda melhor, você poderia construir um terceiromicroservice que lida com autenticação especificamente. Isso envolveria basicamente seu armazenamento de sessão e centralizaria a lógica de autenticação em um só lugar. Ambos os outros dois aplicativos consumiriam esse serviço. Esta é uma área que eu ainda estou aprendendo pessoalmente, e este site tem sido útil: https://dejanglozic.com/2014/10/07/sharing-micro-service-authentication-using-nginx-passport-and-redis/.