public function testIssue1_AuthenticateFailsWithErrors()
 {
     $wt = new WatchTower();
     $wt->watch(new Sentry\Authentication\Callback('auth', function (Event $e) {
         $e->triggerError(Sentry\Sentry::INVALID, 'Not valid');
         $e->stopPropagation();
     }));
     $identity = $wt->authenticate('superman', 'lois lane');
     self::assertTrue($identity->hasErrors());
     self::assertFalse($identity->isAuthenticated());
 }
Beispiel #2
0
use WatchTower\WatchTower;
use WatchTower\Event\Event;
$wt = new WatchTower();
$users = new \WatchTower\Sentry\Identification\InMemory('id');
$users->add('superman', (object) ['name' => 'Khalel', 'alias' => 'clark kent']);
$wt->watch($users);
$wt->watch(new \WatchTower\Sentry\Authentication\Callback('auth', function (Event $event) {
    $identity = $event->identity();
    if ($identity->isIdentified()) {
        $cred = $identity->credential();
        if (!empty($cred) && $cred === 'password') {
            return;
        }
        $event->triggerError(\WatchTower\Sentry\Sentry::INVALID, "Invalid username or password");
    }
}));
// fails authentication and identification
$identity = $wt->authenticate("bizarro", 'forever man');
if ($identity->isIdentified() === false) {
    echo 'Failure: ' . join(', ', $identity->getErrors()) . "<br>\n";
}
// fails authentication, but identification is succesful
$identity = $wt->authenticate("superman", "the ice fortress");
if ($identity->isAuthenticated() === false) {
    echo 'Failure: ' . join(', ', $identity->getErrors()) . "<br>\n";
}
// passed
$identity = $wt->authenticate("superman", "password");
if ($identity->isAuthenticated()) {
    echo "Success! Welcome {$identity->identified()->alias}.<br>\n";
}