turk porno porno escort rokettube
Ergebnis 1 bis 8 von 8
Like Tree1Likes
  • 1 Post By Kaiuwe

Thema: Wie kann ich die Default DB (local.php) mit den Authentification-prozess durchführen.

  1. #1
    Neuer Benutzer
    Registriert seit
    11.01.2017
    Beiträge
    9
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Frage Wie kann ich die Default DB (local.php) mit den Authentification-prozess durchführen.

    Ich hoffe ich Formuliere mich gut genug. Ich bin jetzt schon seit zwei Tagen an dieser Aufgabe dran und weis einfach nicht genau wie ich die local.php Datenbank benutzen kann. Ich bin totall neu in ZF3 und habe davor auch nur mit ZF1 gearbeitet. Dort musste man die DB nur in die application.ini einsetzten und es ging.

    Wie kann ich die local.php Datenbank in einem Authentifizierungsverfahren einsetzen?

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Willkommen im Forum!
    Zitat Zitat von Pawel Rudnev Kl Beitrag anzeigen
    Wie kann ich die local.php Datenbank in einem Authentifizierungsverfahren einsetzen?
    Ein einfaches Code-Beispiel dazu: (im Beispiel wird ein Modul „User“ verwendet)

    zend-db als Module registrieren

    config/application.config.php:
    PHP-Code:
    return [
        
    'modules' => [
            
    'Zend\Db',
            
    // …
        
    ],

    ]; 
    Doku: https://docs.zendframework.com/tutor...tabase-adapter

    Fabrik für AuthenticationService erstellen

    module/User/src/User/Authentication/AuthenticationServiceFactory.php
    PHP-Code:
    namespace User\Authentication;

    use 
    Interop\Container\ContainerInterface;
    use 
    Zend\Authentication\Adapter\DbTable\CredentialTreatmentAdapter;
    use 
    Zend\Authentication\AuthenticationService;
    use 
    Zend\Db\Adapter\AdapterInterface;
    use 
    Zend\ServiceManager\Factory\FactoryInterface;

    class 
    AuthenticationServiceFactory implements FactoryInterface
    {
        
    /**
         * @inheritDoc
         */
        
    public function __invoke(
            
    ContainerInterface $container,
            
    $requestedName,
            array 
    $options null
        
    ) {
            
    // Database adapter
            /** @var AdapterInterface $dbAdapter */
            
    $dbAdapter $container->get(AdapterInterface::class);

            
    // Auth adapter
            
    $authAdapter = new CredentialTreatmentAdapter(
                
    $dbAdapter,
                
    // …
            
    );

            return new 
    AuthenticationService(null$authAdapter);
        }

    Doku: https://docs.zendframework.com/zend-...ial-treatment/

    AuthenticationService im Service Manager hinterlegen

    module/User/config/module.config.php:
    PHP-Code:
    'service_manager' => [
        
    'factories'  => [
            
    Zend\Authentication\AuthenticationServiceInterface::class => User\Authentication\AuthenticationServiceFactory::class,
        ],
    ], 
    Doku: https://docs.zendframework.com/zend-...ervice-manager
    Geändert von Kaiuwe (11.01.2017 um 19:39 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Neuer Benutzer
    Registriert seit
    11.01.2017
    Beiträge
    9
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Standard

    Danke dir!

  4. #4
    Neuer Benutzer
    Registriert seit
    11.01.2017
    Beiträge
    9
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Standard

    Und wie gebe ich die Factory im Controller aus?

  5. #5
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Pawel Rudnev Kl Beitrag anzeigen
    Und wie gebe ich die Factory im Controller aus?
    Gar nicht, denn eine Fabrik („Factory“) wird / kann nie direkt verwendet. Die Fabrik brauchst du auch gar nicht, denn du benötigst doch nur das erstellte Resultat, den „AuthenticationService“. Und dies geht im Kontroller per „Identity“-Plugin und im View-Skript über den „Identity“-View-Helfer.
    Geändert von Kaiuwe (16.01.2017 um 20:52 Uhr)
    Pawel Rudnev Kl likes this.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  6. #6
    Neuer Benutzer
    Registriert seit
    11.01.2017
    Beiträge
    9
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Standard

    Ich habe einen Adapter erstellt der die Identifikation direkt im Adapter macht. Doch ich denke in Zukunft würde es besser sein die DB-Daten aus der Local.php zu bekommen.
    Ich bin deinen Schritten gefolgt und habe meine Adapter ein wenig nach deinem maßstäben angepasst doch ich bekomme es nicht hin.
    Meine Frage

    - wie würden die nächsten Schritte aussehen laut deiner Beschreibung?
    Mit nächsten Schritten ist der Code unten zbs. gemeint
    public function authenticate()
    {
    //check value and return the result
    $this->authAdapter
    ->setIdentity($this->email)
    ->setCredential($this->password);
    $result = $this->authAdapter->authenticate();
    return $result;
    }

  7. #7
    Neuer Benutzer
    Registriert seit
    11.01.2017
    Beiträge
    9
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Standard

    Wie kann ich jetzt mit Hilfe der Factory die Auth-Daten prüfen?

    Ich danke im Vorraus!

  8. #8
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Pawel Rudnev Kl Beitrag anzeigen
    Ich habe einen Adapter erstellt der die Identifikation direkt im Adapter macht. Doch ich denke in Zukunft würde es besser sein die DB-Daten aus der Local.php zu bekommen.
    Ich bin deinen Schritten gefolgt und habe meine Adapter ein wenig nach deinem maßstäben angepasst doch ich bekomme es nicht hin.
    Leider kann ich dir überhaupt nicht folgen! Wieso hast du überhaupt etwas geändert? Was für „DB-Daten“ und wieso „Local.php“?

    Mein Code-Beispiel beinhaltete bereits alles und da muss nichts erweitert werden.
    Du musst doch jetzt nur noch den Service verwenden.

    Hier ein einfaches Beispiel, wie es in einem Kontroller aussehen könnte:

    PHP-Code:
    if ($form->isValid()) {
        
    $data $form->getData();

        
    $adapter $this->authenticationService->getAdapter();
        
    $adapter->setIdentity($data['username'])
                ->
    setCredential($data['password']);

        if (
    $this->authenticationService->authenticate()->isValid()) {
            
    // …
        
    }

    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  9. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Pawel Rudnev Kl (09.02.2017)

Ähnliche Themen

  1. Wie kann ich das machen?
    Von petra im Forum Formulare
    Antworten: 2
    Letzter Beitrag: 15.07.2012, 14:03
  2. Antworten: 6
    Letzter Beitrag: 10.08.2011, 17:55
  3. Wie kann ich ein Steuerkontroller umsetzen?
    Von tomtom33 im Forum Einsteigerfragen
    Antworten: 7
    Letzter Beitrag: 09.05.2011, 17:40
  4. Ich kann wohl kein PHP?
    Von awu im Forum Core
    Antworten: 8
    Letzter Beitrag: 27.11.2007, 14:17
  5. Antworten: 5
    Letzter Beitrag: 13.09.2007, 14:16

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •