PHP - Authentication Using IMAP

This code snippet shows how IMAP authentication can be used to give a user access to an application.

Usage

  1. <?php     
  2.  
  3.     $imapAuth = new ImapAuthentication('ssl://imap.gmail.com', 993);  
  4.     $auth = $imapAuth->authenticate('username', 'password');  
  5.       
  6.     if($auth){  
  7.          echo 'Login Success';  
  8.     }else{  
  9.          echo 'Login failed';  
  10.     }  
  11. ?> 

ImapAuthentication.php

  1. <?php     
  2.  
  3.     class ImapAuthentication {  
  4.          protected $con;  
  5.            
  6.          public function __construct($host, $port){  
  7.               $this->con = fsockopen($host, $port, $errno, $errstr, 30);  
  8.               $this->getResponse();  
  9.          }  
  10.            
  11.          public function authenticate($username, $password){  
  12.               fwrite($this->con, 'A1 LOGIN ' . $username . ' ' . $password . PHP_EOL);  
  13.               return $this->getResponse();  
  14.          }  
  15.            
  16.          protected function getResponse(){  
  17.               while(true){  
  18.                    $line = fgets($this->con);  
  19.                    $segments = explode(' ', $line);  
  20.                    if($segments[1] =='OK'){  
  21.                         return true;  
  22.                    }elseif($segments[1] =='NO'){  
  23.                         return false;  
  24.                    }  
  25.               }  
  26.          }  
  27.     }  
  28. ?> 

No comments:

Post a Comment