Para um exemplo real, estou trabalhando em uma extensão de autenticação do MediaWiki que integra o DiscourseConnect. E será o único método de login na minha instância do MediaWiki.
Tenho duas opções (que eu saiba):
-
Implementar um SessionProvider que obtenha dados do usuário a partir do callback do DiscourseConnect e, em seguida, defina-os diretamente na sessão do MediaWiki.
-
Implementar um PrimaryAuthenticationProvider que também obtenha dados do usuário a partir do callback do DiscourseConnect, mas crie seu próprio usuário no sistema do MediaWiki.
Acho que a opção 1 se parece muito com uma implementação de SSO, enquanto a opção 2 se assemelha a “Login com o Google”.
A única desvantagem da opção 1 que conheço é que será difícil sair dela; não consigo imaginar como migrar e habilitar o login local sem salvar nenhuma credencial no MediaWiki. Talvez eu possa salvar as credenciais do usuário em algum lugar.
Qual opção devo escolher?
Obrigado.