phpixie/project-auth

PHPixie authorization skeleton project

Installs: 708

Dependents: 0

Suggesters: 0

Security: 0

Stars: 46

Watchers: 6

Forks: 10

Open Issues: 3

Type:project

3.2.3 2016-03-21 15:41 UTC

This package is auto-updated.

Last update: 2024-10-13 02:22:48 UTC


README

This is a PHPixie project with some advanced user authentication already setup. It serves as a faster starting point making rolling out your own authorization easier.

Project Demo

There are two separate authentication domains: users and admins, stored in different tables and entirely separated. This means you can login as a user and an admin at the same time. In fact admins can impersonate any user with a press of the button on their dashboard.

To run, first install the project:

composer create-project phpixie/project-auth project

Then point your web server to the web/ folder. That's it, now just visit the site and you'll be greeted with a login/signup page. To try out the admin flow visit /admin/ and login as phpixie with password framework. You can also add your own admins by calling the addAdmin.php script from console:

php addAdmin.php someUser somePassword

The project uses an SQLite database contained in database.sqlite. To recreate the same database in MySQL:

CREATE TABLE `users` (
    `id` INTEGER AUTO_INCREMENT PRIMARY KEY,
    `email` VARCHAR(255) NOT NULL UNIQUE ,
    `passwordHash` VARCHAR(255) NOT NULL
);

CREATE TABLE `userTokens` (
  `series` varchar(50) NOT NULL,
  `userId` int(11) DEFAULT NULL,
  `challenge` varchar(50) DEFAULT NULL,
  `expires` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`series`)
);

CREATE TABLE `admins` (
    `id` INTEGER AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(255) NOT NULL UNIQUE ,
    `passwordHash` VARCHAR(255) NOT NULL
);

Remember to modify the assets/config/database.php file with the new settings.