• Home
  • Contact
blog.biernacki.ca

Kuba's Online Workshop

  • Home
  • Contact

A3M – A CodeIgniter Account Authentication & Authorization Module Installation

11/29/2010 PHP Reviews Thoughts & Rants 22 Comments

A3M has been updated: http://blog.biernacki.ca/2012/07/a3m-updated-to-latest-codeigniter-v2-1-2-named-pbj/.
Please be aware, that this guide is currently outdated.


Example of a3m login form utilizing openidSo I became interested in creating a CodeIgniter openid application.  I really like the concept having used StackOverflow so long, that I decided to start looking for a means to do it.  After some searching and StackOverflow posting, I found a3m.

A3M in a nutshell

a3m is a great OpenID module for CodeIgniter, and what really sold me on it was it’s complete support of all the major openid providers (google, yahoo, myspace, facebook, etc).  It allows you to just build on it and not worry about the typical CRUD that developers go through in regards to user accounts. I’m really glad that I can take something, plug it in, and run with it, building my web application without building the ground work for user connections, something that as a developer you typically have to re-build on EVERY project.

Overall, it gives users a convenient means of connecting with my application, they don’t need to make yet another username/password that they might forget, or just make really weak security wise.

Problems with a3m?

Main issue I found with a3m, is that the developer didn’t have time to fully document the installation of said application. Maybe in the future with a full 1.0 release we will have a complete easy to use guide, but for now my post here aims for that documentation goal. Anyway, it basically comes down to a couple things, but having gone through google searches, and codeigniter forum posts, I can tell you people keep making the same installation mistakes during installation/config.

So the documentation is pretty poor when it comes to this app.  I hope with this post to at least give you a better starting position and eliminate some of the small user created issues (read.. not bugs!).

Oh and lastly, the project is questionable right now due to lack of ‘movement’ since March 2010 (as of this post). So hopefully the developer will contribute some updates.

How to start

  1. Download a3m (which comes already with CodeIgniter 1.7.2 — as of this posting)
  2. Extract the contents into your web directory (using an unzip app like 7zip). Personally I put everything into the root, and didn’t use the ‘a3m’ folder.
  3. Using a mysql client (phpmyadmin or a desktop version like heidi sql), create a database and import the application data from the ‘a3m/a3m.sql’ file.
  4. Once the database is setup, create a unique user account / password to access said database (you will need this for the next section).

Configs & Permissions

So now you’ve got the app extracted, you have your database prepared, privileges setup and ready to be used by your application, all you have to do is modify the configs to reflect your setup.

  1. Edit the following file /system/application/config/database.php and modify your settings just like you would for any CodeIgniter project.
  2. (optional) Modify your .htaccess file if you were like me and put the application into the root directory of your website (remove a3m folder reference).
  3. (optional) If your server / apache / webhost is on a linux box, you will need to modify some permissions on your folder structure.  I learned this through trial and error as no openid / google / yahoo account would validate (It couldn’t store the data locally in the cache).
    I chown’ed the following folders and put them assigned www-data ownership (lets Apache have read/write access) :
    – /uploads/ (all your images / user uploaded content)
    – /system/cache/ (critical for openid nonces)
  4. With permissions set (optional) and the database configured, you only have one more things to edit, and this takes place inside the /system/application/modules/account/config/ folder, so lets edit account.php
  5. account.php needs to be configured, so that you can actually play with your a3m setup.  In my case, I wanted to develop the app without any SSL or reCaptcha support out of the box (by default those 2 are enabled (which breaks your login process as it tries to redirect you to the https site or enable reCaptcha), so lets disable them:
    $config['ssl_enabled'] = FALSE;
    $config['sign_in_recaptcha_enabled'] = FALSE;
    $config['sign_up_recaptcha_enabled'] 	= FALSE;
    $config['sign_up_auto_sign_in'] 	= FALSE;
    $config['sign_up_recaptcha_enabled'] = FALSE;
    $config['sign_up_auto_sign_in'] = FALSE;
    

    also while we are in there, you can configure your outbound password recovery email:

    $config['password_reset_email'] = 'no-reply@reset.website.com';
    

All done…

And there you have it.  Config’s are all done with (for a basic start at least).  Simply navigate now to your website and enjoy testing the a3m interface.  I created some fake demo accounts to test with, one of my favorite openid ones to test with is https://www.myopenid.com/ so start there if you want to create a quick account and test with.  You can then begin building your CodeIgniter application, while utilizing the a3m module for all your login needs.

If you run into problems always refer to your apache / php logs and find out the cause.  If it is simply failing to validate your openid account (even tho you signed in) you need to verify your permissions on the cache folder.

a3mcodeigniterdocumentationhowto

Apple Nano Watches?

Updating Coldfusion 9 to 9.0.1 on Linux J2EE

Categories
  • Android
  • Apple
  • Coldfusion
  • Cool Apps
  • CSS
  • GitHub
  • Hardware
  • How To
  • In the News
  • Javascript
  • Linux
  • PHP
  • RC Hobby
  • Reviews
  • SysAdmin
  • Thoughts & Rants
  • Tinkering
Recent Comments
  • Jim on Fixing ONKYO RC-710m Remote volume issues
  • Tony on Fixing ONKYO RC-710m Remote volume issues
  • Robert Lawrence on Fixing ONKYO RC-710m Remote volume issues
  • Dasen on Fixing ONKYO RC-710m Remote volume issues
  • Ahmed on Fixing ONKYO RC-710m Remote volume issues
RollmyBlog
  • Twitter
  • WebMojo Design
  • Windsor Ultimate
Archives
  • June 2020
  • January 2015
  • June 2014
  • February 2014
  • January 2014
  • December 2013
  • May 2013
  • February 2013
  • July 2012
  • June 2012
  • February 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • April 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • August 2010
  • July 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • November 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • June 2008
  • October 2007
  • September 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • January 2007
Proudly powered by WordPress | Theme: Doo by ThemeVS.