Quantcast
Channel: Joomla! Forum - community, help and support
Viewing all articles
Browse latest Browse all 1575

Joomla! 5.x Coding • Re: access Joomla from an external application

$
0
0
First of all, thank you for writing to me..
The code is as follows:

Code:

<?php/** * @package     Joomla.Login * @subpackage  Authentication.login * * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved. * @license     GNU General Public License version 2 or later; see LICENSE.txt */// Check to ensure this file is included in Joomla!defined('_JEXEC') or die();use Joomla\CMS\Authentication\Authentication;use Joomla\CMS\Plugin\CMSPlugin;use Joomla\CMS\User\User;use Joomla\Event\SubscriberInterface;/** * Example Authentication Plugin for the Joomla Docs. * * @since  1.0 */class PlgAuthenticationLogin extends CMSPlugin implements SubscriberInterface{/** * Database object * * @var    \Joomla\Database\DatabaseDriver * @since  1.0 */protected $db;/** * Returns an array of events this subscriber will listen to. * * @return  array * * @since   1.0 */public static function getSubscribedEvents(): array{return ['onUserAuthenticate' => 'onUserAuthenticate',];}/** * Questo metodo dovrebbe gestire qualsiasi autenticazione e inviare un report al soggetto * Questo esempio utilizza un'autenticazione semplice: controlla se la password è l'inverso * del nome utente (e se l'utente esiste nel database). * * @access    public * @param     array     $credentials    Array holding the user credentials ('username' and 'password') * @param     array     $options        Array of extra options * @param     object    $response       Authentication response object * * @return    boolean * * @since 1.0 */public function onUserAuthenticate( $credentials, $options, &$response ){/* * Qui faresti tutto ciò di cui hai bisogno per una routine di autenticazione con le credenziali * In questo esempio la variabile mista $return verrebbe impostata su false * se la routine di autenticazione fallisce o un intero userid dell'utente autenticato * se la routine passa */$query = $this->db->getQuery(true)->select($this->db->quoteName('id'))->from($this->db->quoteName('#__users'))->where($this->db->quoteName('username') . ' = :username')->bind(':username', $credentials['username']);$this->db->setQuery($query);$result = $this->db->loadResult();if (!$result){$response->status = Authentication::STATUS_FAILURE;$response->error_message = 'User does not exist';}/** * Per l'autenticazione, il nome utente deve esistere nel database e la password deve essere uguale * al contrario del nome utente (quindi l'utente joeblow avrebbe password wolbeoj) * if($result && ($credentials['username'] == strrev( $credentials['password'] )))*/if($result && ($credentials['username'])){$email = User::getInstance($result); // Bring this in line with the rest of the system$response->email = $email->email;$response->status = Authentication::STATUS_SUCCESS;}else{$response->status = Authentication::STATUS_FAILURE;$response->error_message = 'Invalid username and password';}}}

Statistics: Posted by EmanuelePe — Sun Oct 06, 2024 5:35 pm



Viewing all articles
Browse latest Browse all 1575

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>