81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Zotlabs\Identity;
 | |
| 
 | |
| 
 | |
| class OAuth2Storage extends \OAuth2\Storage\Pdo {
 | |
| 
 | |
|     /**
 | |
|      * @param string $username
 | |
|      * @param string $password
 | |
|      * @return bool
 | |
|      */
 | |
|     public function checkUserCredentials($username, $password)
 | |
|     {
 | |
|         if ($user = $this->getUser($username)) {
 | |
|             return $this->checkPassword($user, $password);
 | |
|         }
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param string $username
 | |
|      * @return array|bool
 | |
|      */
 | |
|     public function getUserDetails($username)
 | |
|     {
 | |
|         return $this->getUser($username);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      *
 | |
|      * @param array $user
 | |
|      * @param string $password
 | |
|      * @return bool
 | |
|      */
 | |
|     protected function checkPassword($user, $password)
 | |
|     {
 | |
| 
 | |
| 		$x = account_verify_password($user,$password);
 | |
| 		return((array_key_exists('channel',$x) && ! empty($x['channel'])) ? true : false);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param string $username
 | |
|      * @return array|bool
 | |
|      */
 | |
|     public function getUser($username)
 | |
|     {
 | |
| 
 | |
| 		$x = channelx_by_nick($username);
 | |
| 		if(! $x) {
 | |
| 			return false;
 | |
| 		}
 | |
| 
 | |
| 		return( [
 | |
| 			'username'  => $x['channel_address'],
 | |
| 			'user_id'   => $x['channel_id'],
 | |
| 			'firstName' => $x['channel_name'],
 | |
| 			'lastName'  => '',
 | |
| 			'password'  => 'NotARealPassword'
 | |
| 		] );
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * plaintext passwords are bad!  Override this for your application
 | |
|      *
 | |
|      * @param string $username
 | |
|      * @param string $password
 | |
|      * @param string $firstName
 | |
|      * @param string $lastName
 | |
|      * @return bool
 | |
|      */
 | |
|     public function setUser($username, $password, $firstName = null, $lastName = null)
 | |
|     {
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
| } |