Skip to content
Barry O'Donovan edited this page Feb 9, 2015 · 2 revisions

Laravel includes a comprehensive authentication implementation - documentation available here. This Doctrine2Bridge package includes a user provider which allows you to use Doctrine2 for your user database backend.

The following instructions will explain how to use this feature:

Creating a Table for Your Users

You need a database table to store your users and passwords. You can call this table anything you like. We include an example XML schema and generated entity in the examples/auth/ folder.

What you need to do is:

  • create a table to hold your users;
  • this table requires a column for usernames/emails and password;
  • when this table is generated, add implements \Illuminate\Auth\UserInterface to the class definition;
  • implement the getAuthIdentifier() method which simply returns the object id;
  • implement the getAuthPassword() method which returns the (hashed) password.

Configure Doctrine2Bridge as Your Authentication Plugin

In your published Doctrine2Bridge configuration (config/d2bdoctrine.php), update the authentication section such as:

'auth' => array( 'enabled' => true, 'entity' => '\Entities\User' // the Doctrine2 entity representing the user )

The entity element should be your Doctrine2 user entity class.

Now, update config/auth.php and set the driver:

'driver' => 'doctrine2bridge',

That's it! You now have Doctrine2 / Laravel combined for authentication.

Testing

You can test this by adding a user:

$hasher = new Illuminate\Hashing\BcryptHasher; $u = new Entities\User(); $u->setUsername( 'testuser'); $u->setPassword( $hasher->make( 'qwertyuiop' ) ); D2EM::persist($u); D2EM::flush();

To test the authentication:

echo 'Test failed authentication (result should be false): '; var_dump( Auth::attempt( array('username' => 'testuser', 'password' => 'dontknow') ) ); echo 'Test successful authentication (result should be true): '; var_dump( Auth::attempt( array('username' => 'testuser', 'password' => 'qwertyuiop') ) );

And the expected output is:

Test failed authentication (result should be false): bool(false) Test successful authentication (result should be true): bool(true) 
Clone this wiki locally