Acapadev SDK
Integração com Socialite (SSO)
O Acapadev SDK inclui um driver customizado, o AcapadevProvider, para o Laravel Socialite, permitindo que os utilizadores iniciem sessão na tua aplicação usando a conta central do Acapadev ID.
Pré-requisitos
Certifica-te de que executaste php artisan acapadev:install e configuraste o teu ACAPADEV_CLIENT_ID e ACAPADEV_CLIENT_SECRET no ficheiro .env. O AcapadevServiceProvider regista automaticamente o driver acapadev no Socialite durante o boot da aplicação — não precisas de configurar nada manualmente em config/services.php.
O URL de callback usado pelo Socialite é definido pela variável ACAPADEV_REDIRECT_URI (por padrão /auth/acapadev/callback). Garante que este mesmo URL está registado no painel de Developer Apps do Acapadev ID.
Como Usar
No teu controlador de autenticação, redireciona o utilizador para a central:
use Laravel\Socialite\Facades\Socialite;
public function redirect()
{
return Socialite::driver('acapadev')->redirect();
}
Na rota de callback (que deves ter configurado no painel do Acapadev ID), recebe o utilizador:
public function callback()
{
$acapadevUser = Socialite::driver('acapadev')->user();
// Encontrar ou criar o utilizador na base de dados local
$user = User::updateOrCreate(
['email' => $acapadevUser->getEmail()],
[
'name' => $acapadevUser->getName(),
'acapadev_id' => $acapadevUser->getId(),
]
);
Auth::login($user);
return redirect('/dashboard');
}
Registar as Rotas
Route::get('/auth/acapadev/redirect', [AuthController::class, 'redirect'])->name('acapadev.redirect');
Route::get('/auth/acapadev/callback', [AuthController::class, 'callback'])->name('acapadev.callback');
Guarda Sempre o acapadev_id
Persistir o identificador central (getId()) no teu modelo User é essencial — é o valor usado pela Trait HasAcapadevRoles e pelo middleware EnsureAcapadevSession para comunicar com a API central.