Download the PHP package photon/auth-mongodb without Composer

On this page you can find all versions of the php package photon/auth-mongodb. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package auth-mongodb

auth-mongodb

Build Status

MongoDB Backend for user, group, acl storage in photon

Quick start

1) Add the module in your project

composer require "photon/auth-mongodb:dev-master"

or for a specific version

composer require "photon/auth-mongodb:^2.0"

2) Define a MongoDB connection in your project configuration

Declare your MongoBD database

'databases' => array(
    'default' => array(
        'engine' => '\photon\db\MongoDB',
        'server' => 'mongodb://localhost:27017/',
        'database' => 'orm',
        'options' => array(
            'connect' => true,
        ),
    ),
),

3) Enable session backend

The authentification module use a session to store user information

'session_storage' => '\photon\session\storage\MongoDB',
'session_cookie_path' => '/',
'session_timeout' => 4 * 60 * 60,
'session_mongodb' => array(
    'database' => 'default',
    'collection' => 'session',
),

4) Configure the authentification backend

Configure the authentification backend to use this module

'auth_backend' => '\photon\Auth\MongoDBBackend',

5) Create a user

Create your first user to be able to login

$user = new \photon\auth\MongoDBUser;
$user->setLogin('[email protected]');
$user->setPassword('strong');
$user->save();

6) Create a login view

Add a login view in your app, the following code is the minimal one

class MyViews {
    public function login($request, $match)
    {
        if ($request->method === 'POST') {
            $user = \photon\auth\Auth::authenticate($request->POST);
            if ($user !== false) {
                \photon\auth\Auth::login($request, $user);
                return new Redirect('/');
            }
        }

        return shortcuts\Template::RenderToResponse('login.html', array(), $request);
    }
}

Declare the login view in your urls.

array('regex' => '#^/login$#',
      'view' => array('\Dummy', 'dummy'),
      'name' => 'login_view')

7) Enjoy !

Advanced usage

Custom user class

If you want to add application specific content to the user class, you just have to extends it. It's allow you to change the collection name where object are stored.

class MyUser extends \photon\auth\MongoDBUser
{
    const collectionName = 'foobarcollection';

    public function isAdmin()
    {
        return $this->admin;
    }
}

Then, you must configure the MongoDB auth backend to use your class. Edit your photon configuration file to add :

'auth_mongodb' => array(
    'user_class' => '\My\App\MyUser',
)

Protect your view with ACLs

The following view dummy is protected by precondition. The class MongoDBPrecondition will load the ACL with name adminPanel and ensure the user can access to this view, otherwize a 403 will be generated.

class Dummy
{
  public $dummy_precond = array(
  '\photon\auth\MongoDBPrecondition::adminPanel'
  );
  public function dummy($request, $match)
  {
    return new \photon\http\response\NoContent;
  }
}

The ACL can be created with the following code

$acl = new \photon\auth\MongoDBAcl;
$acl->setName('adminPanel');
$acl->addUser($user);
$acl->save();

You can ensure all ACL are created with the following code, users can be added later.

\photon\auth\MongoDBAcl::ensureExists(['admin', 'api', 'ntp']);

Conditional rendering in templates

You can use MongoDBTemplateTag in your template to test user ACL.

{acl 'adminPanel'}
Will be display only if the user have the adminPanel acl
{/acl}

The template must be declared in your configuration file

'template_tags' => array(
    'acl' => '\photon\auth\MongoDBTemplateTag',
)

All versions of auth-mongodb with dependencies

PHP Build Version
Package Version
Requires php Version ^5.5 || ^7.0
photon/photon Version ^2.0
photon/storage-mongodb-object Version ^2.0 || ^3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package photon/auth-mongodb contains the following files

Loading the files please wait ....