Acapadev

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.

Enter para selecionar ESC para sair