2017-02-05 3 views
0

J'ai essayé d'activer l'Authentification de Base HTTP, en utilisant les banques d'informations dans ma base de données PSQL au lieu du fichier htpasswd, mais je n'arrive pas à trouver un moyen de le faire dans Apigility . Pour autant que je l'aie compris, je vais devoir créer un adaptateur qui implémente ResolverInterface et renvoie une méthode "résolue" (après la validation nécessaire).HTTP Authentification de base via DB avec Apigility

Mais je ne sais pas comment le gérer pour être l'adaptateur utilisé par l'authentification de base HTTP.

Comment puis-je y parvenir?

Répondre

1

Une façon d'y parvenir est de remplacer l'usine pour la ZF \ MvcAuth \ Authentication \ AuthHttpAdapter dans votre configuration:

'service_manager' => array(
    'factories' => array(
     'ZF\MvcAuth\Authentication\AuthHttpAdapter' => 'MyNamespace\MyHttpAdapterFactory', 
    ) 
); 

Et dans votre usine, vous pouvez configurer votre résolveur comme le résolveur de base:

public function createService(ServiceLocatorInterface $services) 
{ 
    $httpAdapter = parent::createService($services); // Assuming you are extending from DefaultHttpAdapterFactory 
    $myResolver = $serviceManager->get('MyResolver'); 
    $httpAdapter->setBasicResolver($myResolver); 

    return $httpAdapter; 
}