Welcome Guest, Not a member yet? Register   Sign In
MeNeedz Auth

[eluser]meteor[/eluser]
Just wrote a small class for auth purposes ...
It actually does two things:
1. encrypts password with sha1 or md5 hashing function and adds salt component in turn writing all that to the database
2. it authenticates user with data fetched from database ...

There is no data validation. It assumes that it has already been done and input is clean ...
It does not write anything to the database itself ... al this is delegated to your model object.
Both authenticate and register funcs get model object as their second argument.
This class is supposed to be instantiated in your controller and after prior checking of all your input data(there is no need to instantiate it if input data is dirty anyway).

It assumes, you have at least one model which coresponds to your database table
the table itself should have user,password(40 or 32),salt(9) and email(optional) fields

This is just simple example, written and tested in my spare time (today) ... and as such should be treated ...
I hope you(david) find it useful Wink))

I'm attaching a few tests below the class ... regards

///////////////////////////////////////////////////////////////// Myauth.php
Code:
<?php // if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  class MyAuth{
    var $config = null;
    var $defaults = array(
      // we use sha1 for creating hashes
      'hash' => 'sha1',
      // salt_lenght should be 9 characters(ASCII assumed)
      'salt_length' => 9,
    );
    function __construct($config = array()){
     // use md5, but nothing else, if you does not like sha1 ...
      if(isset($config['hash']) and !in_array($config['hash'],array('sha1','md5'))){ throw new Exception('Hash type not supproted'); }
      $this->config = array_merge($this -> defaults,$config);
    }
    // this function just gets CLEAN data, creates hashed, salted password
    // and delegates writing data to the user_model
    // $data should look like this:
    // $data = array('user' => 'my_user', 'password' => 'her_password','email' => '[email protected]');
    // $user_model is an instance of user_model
    function register($data,$user_model){
      $this->_salt($data['password']);
      $data['password'] = $this->salted_password;
      $data['salt'] = $this->salt;
      return $user_model -> put_user($data);
    }
    // this is an authentication function
    // it gets CLEAN data in the form of: array('user' => 'my_user', 'password' => 'her_password');  
    // and compares it with data fetched from database
    // the second argment to this func is a model object
    // (say, user) which is responsible for fetching data from db
    function authenticate($data,$user_model){
      $db_data = $user_model -> get_user($data['user']);
      if(empty($db_data)){ return false; }  
      $user_obj = $db_data[0];
      $e_password = $user_obj -> password;  
      $this -> _salt($data['password'],$user_obj -> salt);
      return $this -> salted_password == $user_obj ->  password  ? true : false;    
    }
    // this should be made private !!!
    // it does not return anything ...
    // salted password is stored in $this -> salted_password;
    // salt used to reinforce password is stored in $this -> salt property  
    function _salt($password,$e_salt = null){
      $salt = is_null($e_salt) ? substr(uniqid(rand(),true),0,$this->config['salt_length']) : $e_salt;
      $this -> salted_password = $this -> config['hash'] == 'sha1' ? sha1($salt.$password) : md5($salt.$password);
      $this -> salt =  $salt;
    }
  }
?>


Messages In This Thread
MeNeedz Auth - by El Forum - 11-09-2008, 04:23 PM
MeNeedz Auth - by El Forum - 11-09-2008, 05:22 PM
MeNeedz Auth - by El Forum - 11-09-2008, 08:19 PM
MeNeedz Auth - by El Forum - 11-10-2008, 02:14 AM
MeNeedz Auth - by El Forum - 11-10-2008, 04:16 AM
MeNeedz Auth - by El Forum - 11-10-2008, 05:44 AM
MeNeedz Auth - by El Forum - 11-10-2008, 06:14 AM
MeNeedz Auth - by El Forum - 11-10-2008, 06:51 AM
MeNeedz Auth - by El Forum - 11-10-2008, 07:48 AM
MeNeedz Auth - by El Forum - 11-10-2008, 08:21 AM
MeNeedz Auth - by El Forum - 11-10-2008, 08:26 AM
MeNeedz Auth - by El Forum - 11-10-2008, 06:12 PM
MeNeedz Auth - by El Forum - 11-10-2008, 06:36 PM
MeNeedz Auth - by El Forum - 11-10-2008, 07:23 PM
MeNeedz Auth - by El Forum - 11-10-2008, 07:35 PM
MeNeedz Auth - by El Forum - 11-10-2008, 10:32 PM
MeNeedz Auth - by El Forum - 11-11-2008, 03:02 AM
MeNeedz Auth - by El Forum - 11-12-2008, 08:37 AM
MeNeedz Auth - by El Forum - 11-12-2008, 02:27 PM
MeNeedz Auth - by El Forum - 11-13-2008, 12:44 PM
MeNeedz Auth - by El Forum - 11-14-2008, 07:16 AM
MeNeedz Auth - by El Forum - 11-15-2008, 10:42 AM
MeNeedz Auth - by El Forum - 11-15-2008, 02:21 PM
MeNeedz Auth - by El Forum - 11-15-2008, 07:33 PM
MeNeedz Auth - by El Forum - 11-16-2008, 11:56 PM
MeNeedz Auth - by El Forum - 11-17-2008, 07:55 AM
MeNeedz Auth - by El Forum - 11-17-2008, 11:05 PM
MeNeedz Auth - by El Forum - 11-18-2008, 02:39 AM
MeNeedz Auth - by El Forum - 11-18-2008, 03:08 AM
MeNeedz Auth - by El Forum - 11-18-2008, 03:17 AM
MeNeedz Auth - by El Forum - 11-18-2008, 03:20 AM
MeNeedz Auth - by El Forum - 11-18-2008, 05:17 AM
MeNeedz Auth - by El Forum - 11-18-2008, 06:53 AM
MeNeedz Auth - by El Forum - 11-18-2008, 09:08 AM
MeNeedz Auth - by El Forum - 11-19-2008, 01:27 AM
MeNeedz Auth - by El Forum - 11-19-2008, 02:26 AM
MeNeedz Auth - by El Forum - 11-19-2008, 08:17 AM
MeNeedz Auth - by El Forum - 11-19-2008, 10:29 AM
MeNeedz Auth - by El Forum - 11-19-2008, 11:19 AM
MeNeedz Auth - by El Forum - 11-19-2008, 01:08 PM
MeNeedz Auth - by El Forum - 11-19-2008, 01:31 PM
MeNeedz Auth - by El Forum - 11-19-2008, 02:33 PM
MeNeedz Auth - by El Forum - 11-19-2008, 03:27 PM
MeNeedz Auth - by El Forum - 11-19-2008, 03:38 PM
MeNeedz Auth - by El Forum - 11-19-2008, 03:47 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:05 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:07 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:13 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:20 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:21 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:37 PM
MeNeedz Auth - by El Forum - 11-19-2008, 04:41 PM
MeNeedz Auth - by El Forum - 11-19-2008, 05:55 PM
MeNeedz Auth - by El Forum - 11-20-2008, 02:21 AM
MeNeedz Auth - by El Forum - 11-20-2008, 02:47 AM
MeNeedz Auth - by El Forum - 11-20-2008, 03:03 AM
MeNeedz Auth - by El Forum - 11-21-2008, 03:48 PM
MeNeedz Auth - by El Forum - 11-21-2008, 05:45 PM
MeNeedz Auth - by El Forum - 11-21-2008, 06:29 PM
MeNeedz Auth - by El Forum - 11-21-2008, 06:49 PM
MeNeedz Auth - by El Forum - 11-21-2008, 06:59 PM
MeNeedz Auth - by El Forum - 11-21-2008, 07:00 PM
MeNeedz Auth - by El Forum - 11-21-2008, 07:39 PM
MeNeedz Auth - by El Forum - 11-21-2008, 07:47 PM
MeNeedz Auth - by El Forum - 11-21-2008, 07:51 PM
MeNeedz Auth - by El Forum - 11-21-2008, 07:54 PM
MeNeedz Auth - by El Forum - 11-21-2008, 08:09 PM
MeNeedz Auth - by El Forum - 11-21-2008, 08:16 PM
MeNeedz Auth - by El Forum - 11-21-2008, 08:26 PM
MeNeedz Auth - by El Forum - 11-22-2008, 03:38 AM
MeNeedz Auth - by El Forum - 11-22-2008, 06:03 AM
MeNeedz Auth - by El Forum - 11-22-2008, 07:06 AM
MeNeedz Auth - by El Forum - 11-22-2008, 07:56 AM
MeNeedz Auth - by El Forum - 11-22-2008, 08:15 AM
MeNeedz Auth - by El Forum - 11-24-2008, 04:29 PM
MeNeedz Auth - by El Forum - 11-24-2008, 05:45 PM
MeNeedz Auth - by El Forum - 11-25-2008, 01:20 PM
MeNeedz Auth - by El Forum - 11-26-2008, 02:28 AM
MeNeedz Auth - by El Forum - 11-26-2008, 02:38 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:02 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:08 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:20 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:29 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:40 AM
MeNeedz Auth - by El Forum - 11-26-2008, 03:46 AM
MeNeedz Auth - by El Forum - 11-26-2008, 05:36 AM
MeNeedz Auth - by El Forum - 11-26-2008, 05:40 AM
MeNeedz Auth - by El Forum - 11-26-2008, 06:15 AM
MeNeedz Auth - by El Forum - 11-26-2008, 02:24 PM
MeNeedz Auth - by El Forum - 11-26-2008, 02:31 PM
MeNeedz Auth - by El Forum - 11-30-2008, 04:59 AM
MeNeedz Auth - by El Forum - 12-05-2008, 08:05 AM
MeNeedz Auth - by El Forum - 12-05-2008, 11:17 AM
MeNeedz Auth - by El Forum - 12-05-2008, 02:00 PM
MeNeedz Auth - by El Forum - 12-05-2008, 04:14 PM
MeNeedz Auth - by El Forum - 12-06-2008, 09:10 AM
MeNeedz Auth - by El Forum - 12-06-2008, 12:07 PM
MeNeedz Auth - by El Forum - 12-06-2008, 03:53 PM
MeNeedz Auth - by El Forum - 12-06-2008, 04:10 PM
MeNeedz Auth - by El Forum - 12-10-2008, 05:18 PM
MeNeedz Auth - by El Forum - 12-11-2008, 02:17 AM
MeNeedz Auth - by El Forum - 12-11-2008, 03:29 AM
MeNeedz Auth - by El Forum - 12-11-2008, 04:31 AM
MeNeedz Auth - by El Forum - 12-11-2008, 04:36 AM
MeNeedz Auth - by El Forum - 12-11-2008, 04:42 AM
MeNeedz Auth - by El Forum - 12-11-2008, 05:04 AM
MeNeedz Auth - by El Forum - 12-11-2008, 05:17 AM
MeNeedz Auth - by El Forum - 12-11-2008, 06:18 AM
MeNeedz Auth - by El Forum - 12-11-2008, 06:57 AM
MeNeedz Auth - by El Forum - 12-11-2008, 07:36 AM
MeNeedz Auth - by El Forum - 12-11-2008, 09:50 AM
MeNeedz Auth - by El Forum - 12-12-2008, 06:49 AM
MeNeedz Auth - by El Forum - 12-12-2008, 07:17 AM
MeNeedz Auth - by El Forum - 12-12-2008, 07:24 AM
MeNeedz Auth - by El Forum - 12-12-2008, 07:35 AM
MeNeedz Auth - by El Forum - 12-14-2008, 06:13 PM
MeNeedz Auth - by El Forum - 12-15-2008, 01:48 AM
MeNeedz Auth - by El Forum - 12-15-2008, 02:11 PM
MeNeedz Auth - by El Forum - 12-15-2008, 03:46 PM
MeNeedz Auth - by El Forum - 12-15-2008, 04:08 PM
MeNeedz Auth - by El Forum - 12-15-2008, 05:01 PM
MeNeedz Auth - by El Forum - 12-15-2008, 07:42 PM
MeNeedz Auth - by El Forum - 12-18-2008, 12:48 PM
MeNeedz Auth - by El Forum - 12-23-2008, 06:08 PM
MeNeedz Auth - by El Forum - 12-23-2008, 07:18 PM
MeNeedz Auth - by El Forum - 12-24-2008, 02:30 AM
MeNeedz Auth - by El Forum - 12-24-2008, 04:58 AM
MeNeedz Auth - by El Forum - 12-24-2008, 05:03 AM
MeNeedz Auth - by El Forum - 12-28-2008, 05:27 PM
MeNeedz Auth - by El Forum - 12-29-2008, 12:26 AM
MeNeedz Auth - by El Forum - 12-29-2008, 03:32 PM
MeNeedz Auth - by El Forum - 12-29-2008, 08:13 PM
MeNeedz Auth - by El Forum - 12-30-2008, 02:49 AM
MeNeedz Auth - by El Forum - 12-30-2008, 04:51 AM
MeNeedz Auth - by El Forum - 01-05-2009, 04:16 PM
MeNeedz Auth - by El Forum - 01-05-2009, 05:34 PM
MeNeedz Auth - by El Forum - 01-08-2009, 08:30 AM
MeNeedz Auth - by El Forum - 02-02-2009, 01:33 AM
MeNeedz Auth - by El Forum - 02-02-2009, 03:08 AM
MeNeedz Auth - by El Forum - 02-21-2009, 07:14 PM
MeNeedz Auth - by El Forum - 02-22-2009, 02:15 AM
MeNeedz Auth - by El Forum - 03-04-2009, 06:03 AM
MeNeedz Auth - by El Forum - 03-04-2009, 06:53 AM
MeNeedz Auth - by El Forum - 03-04-2009, 07:02 AM
MeNeedz Auth - by El Forum - 03-10-2009, 12:58 PM
MeNeedz Auth - by El Forum - 03-10-2009, 02:34 PM
MeNeedz Auth - by El Forum - 03-11-2009, 09:15 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:17 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:25 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:34 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:39 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:53 AM
MeNeedz Auth - by El Forum - 03-11-2009, 09:59 AM
MeNeedz Auth - by El Forum - 03-11-2009, 10:14 AM
MeNeedz Auth - by El Forum - 03-12-2009, 02:32 AM
MeNeedz Auth - by El Forum - 03-15-2009, 10:42 PM
MeNeedz Auth - by El Forum - 03-16-2009, 01:26 AM
MeNeedz Auth - by El Forum - 03-24-2009, 05:14 PM
MeNeedz Auth - by El Forum - 05-22-2009, 01:22 PM
MeNeedz Auth - by El Forum - 07-17-2009, 10:27 AM
MeNeedz Auth - by El Forum - 07-17-2009, 10:34 AM
MeNeedz Auth - by El Forum - 07-17-2009, 10:44 AM
MeNeedz Auth - by El Forum - 07-17-2009, 10:49 AM
MeNeedz Auth - by El Forum - 07-17-2009, 10:58 AM
MeNeedz Auth - by El Forum - 07-17-2009, 11:07 AM
MeNeedz Auth - by El Forum - 07-17-2009, 11:14 AM
MeNeedz Auth - by El Forum - 07-17-2009, 11:32 AM
MeNeedz Auth - by El Forum - 07-17-2009, 11:38 AM
MeNeedz Auth - by El Forum - 07-17-2009, 11:44 AM
MeNeedz Auth - by El Forum - 07-17-2009, 03:42 PM
MeNeedz Auth - by El Forum - 07-17-2009, 04:57 PM
MeNeedz Auth - by El Forum - 07-18-2009, 12:08 PM
MeNeedz Auth - by El Forum - 07-18-2009, 12:09 PM
MeNeedz Auth - by El Forum - 07-21-2009, 02:21 AM
MeNeedz Auth - by El Forum - 07-21-2009, 02:50 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:15 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:23 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:31 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:34 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:40 AM
MeNeedz Auth - by El Forum - 07-21-2009, 03:48 AM
MeNeedz Auth - by El Forum - 07-21-2009, 04:00 AM
MeNeedz Auth - by El Forum - 07-28-2009, 09:27 AM
MeNeedz Auth - by El Forum - 07-28-2009, 11:28 AM
MeNeedz Auth - by El Forum - 07-28-2009, 01:50 PM
MeNeedz Auth - by El Forum - 08-23-2009, 12:06 AM
MeNeedz Auth - by El Forum - 08-23-2009, 12:35 AM
MeNeedz Auth - by El Forum - 01-20-2010, 09:52 AM
MeNeedz Auth - by El Forum - 01-21-2010, 04:19 AM
MeNeedz Auth - by El Forum - 01-21-2010, 04:34 AM
MeNeedz Auth - by El Forum - 01-24-2010, 02:12 PM
MeNeedz Auth - by El Forum - 01-24-2010, 02:22 PM
MeNeedz Auth - by El Forum - 01-24-2010, 02:24 PM
MeNeedz Auth - by El Forum - 01-24-2010, 02:41 PM
MeNeedz Auth - by El Forum - 01-24-2010, 02:47 PM
MeNeedz Auth - by El Forum - 03-16-2010, 01:19 AM
MeNeedz Auth - by El Forum - 03-16-2010, 02:31 AM
MeNeedz Auth - by El Forum - 03-20-2010, 08:04 AM
MeNeedz Auth - by El Forum - 06-14-2010, 02:54 AM



Theme © iAndrew 2016 - Forum software by © MyBB