2016-04-27 5 views
1

Ich habe eine Anwendung, die bisher die Standardauthentifizierung verwendet hat. Eine der Anforderungen der Anwendung bestand darin, die Authentifizierung mit OAuth zuzulassen.Ist es möglich, den Anbieter der Symfony Security-Kette in einer Silex-App zu verwenden?

Ich habe damit begonnen, dies mit der OAuthServiceProvider (https://github.com/gigablah/silex-oauth) zu implementieren, und ich habe es zur Arbeit.

Allerdings möchte ich mehrere Authentifizierungsanbieter haben. Auf diese Weise kann ich Benutzer in der Anwendung für Personen registrieren, die solche Konten nicht haben oder sie nicht verwenden möchten. Dies liegt auch daran, dass ich einen lokalen Systembenutzer mit Administratorrechten für die Anwendung habe.

Ich habe dies gelesen und ich habe gesehen, dass Symfony 2 eine chain_provider für den Sicherheitsanbieter hat. Da Silex auf Symfony basiert, habe ich mich gefragt, ob es möglich ist, dies in Silex zu implementieren.

Ich habe den Code, um es in Symfony zu tun - http://symfony.com/doc/current/cookbook/security/multiple_user_providers.html. Aber ich weiß nicht, wie man die YML-Konfiguration in Service-Registrierungen in Silex übersetzt.

Jede Hilfe wird sehr geschätzt.

UPDATE (10. Mai 2016)

Ich habe hier einige Informationen entfernt, da es nicht korrekt war. Es ist nicht möglich, Silex zu veranlassen, die Formular- und OAuth-Authentifizierung sofort zu verwenden.

Ich werde mit nur OAuth für den Moment gehen müssen und mit der Tatsache leben, dass ich nicht lokale Authentifizierung auch haben kann. Ich möchte auf die 'Guard Authentication' wie in den Kommentaren erwähnt schauen, aber ich kann im Moment nicht herausfinden, wie man dies in Silex benutzt, wenn jemand dies getan hat und ein Beispiel hat, wie man die Silex App so konfiguriert, dass sie es benutzt wäre großartig.

+0

Können zeigen Ihnen die Sicherheit Config Sie verwenden? – mTorres

+0

BTW, [Silex hat gerade * Guard * Integration] (https://github.com/silexphp/Silex/commit/4b5ccc9a0e9d38296e50abed9f83d8ee33050859), so dass Sie [mehrere Wächter Authenticators] verwenden konnten (http://symfony.com/doc/ current/cookbook/security/multiple_guard_authenticators.html) (aber ich bin davon überzeugt, dass Sie einen Authentifikator für den OAuth-Prozess erstellen müssen, sollte es aber nicht zu schwierig sein) – mTorres

+0

@mTorres Danke für die Kommentare. Ich hatte in den letzten 3 Tagen keine Gelegenheit, mir das anzuschauen, und ich weiß, dass ich bei meinen Tests alles kaputt gemacht habe. Ich werde es wieder funktionieren lassen und ein Update posten. –

Antwort

1

in silex 2,0

$app->register(new Silex\Provider\SecurityServiceProvider(), [ 
    'security.firewalls' => [... 
     'users' => function ($app) { 
          return new ChainUserProvider(
          [$userProviderOne, $userProviderTwo]);) ... 
Verwandte Themen