Capítulo 2
Estrutura da Base de Dados
Para que a sua aplicação suporte login centralizado via ACAPADEV ID, precisa de fazer algumas alterações cruciais na sua tabela local users.
Como a gestão das senhas, segurança, verificação de e-mails e recuperação de contas passam a ser obrigações do ACAPADEV ID, a sua aplicação deixa de guardar estas informações sensíveis.
1. A Migração Obrigatória
Crie uma migração no seu projeto (php artisan make:migration alter_users_table_for_sso) e modifique a tabela para refletir as necessidades do SSO:
public function up()
{
Schema::table('users', function (Blueprint $table) {
// 1. O ID único vindo do ACAPADEV ID
$table->string('sso_id')->nullable()->unique()->after('id');
// 2. A senha deixa de ser obrigatória (pode ser nula)
$table->string('password')->nullable()->change();
// 3. Pode guardar o avatar global
$table->string('avatar')->nullable()->after('email');
});
}
2. Modificar o Modelo User
Abra o ficheiro app/Models/User.php do seu projeto satélite e adicione a coluna sso_id e avatar ao $fillable.
protected $fillable = [
'name',
'email',
'sso_id',
'avatar',
'password', // Opcional, mantido caso suporte duplo-login
];
Dúvidas Frequentes
Posso manter o login local e o login SSO em simultâneo?
Sim! Basta manter a coluna password com o atributo nullable(). Assim, utilizadores vindos do SSO não precisam de senha (o sso_id é a garantia de autenticação), mas utilizadores locais podem continuar a autenticar-se da forma tradicional.