User Code List
PHP
---New Snippet
---New Snippet
---Symfony
------Tworzenie projektu
---------New Snippet
------Doctrine zamiast Propel
------często używane itp
---SVN
------SVN tortoise-nowy proj
------New Snippet
------Z tutoriala jobeet
---Yii
------1. Szkielet aplikacji
------2. Yiic na skróty
------3. Ustawienia bazy danych
------4. Scaffolding, CRUD, model tabeli db
------5. Uwierzytalenianie
------6. Model, rules()
------7. Model, safeAttributes()
------8. Model, relations()
------9. Kontroler, kontrola dostępu
------10. Model, zapisywanie, pobieranie elementów
------11. Formularze, budowa, przetwarzanie
------12. Szablony, widoki, partiale
------13. Themes, layouts
------ 5.1. Tworzenie widgetu logowania
------14. Ściąga, często używane itp cz.1
------15. Jak wykonać stronicowanie danych (pager)
------16. AJAX, aktualizowanie tresci po kliknieciu w button
---------New Snippet
------17. AJAX, aktualizowanie tresci po kliknieciu w cokolwiek
---------New Snippet
------18. Przetwrzanie danych z formularzy
------18. AJAX w AJAX, budowanie linków itp
---Konwersja systemu kodowania na inny
Apache
---Wirtualny host dla projektu
New Snippet
---New Snippet
JS
---Podświetlanie kontenera pola input
 
 
5. Uwierzytalenianie
 

Uwierzytelnianie użytkownika

Uwierzytelnienie użytkownika wykonywane jest w klasie implementującej interfejs IUserIdentity. Szkielet aplikacji używa do tego celu klasy UserIdentity. Klasa ta znajduje się

w pliku protected/components/UserIdentity.php.

Oto podstawowa implementacja klasy UserIdentity uwierzytelniająca uzytkownika korzystając z bazy danych:

Funkcja klasy UserIdentity uwierzytelniająca użytkownika:

class UserIdentity extends CUserIdentity

{

private $_id;

public function authenticate()

{

$username = strtolower($this->username);

$user = User::model()->find('LOWER(username)=?', array($username));

if($user === null)

$this->errorCode = self::ERROR_USERNAME_INVALID;

else if(md5($this->password) !== $user->password)

$this->errorCode = self::ERROR_PASSWORD_INVALID;

else

{

$this->_id = $user->id;

$this->username = $user->username;

$this->errorCode = self::ERROR_NONE;

}

return !$this->errorCode;

}

public function getId()

{

return $this->_id;

}

}

Zmienne $this->username i $this->password są ustawiane w chwili tworzenia instancji obiektu UserIdentity np tak jak w klasie LoginForm (plik models/LoginForm.php):

$identity=new UserIdentity($this->username,$this->password);

Obie właściwości: nazwa użytkownika username oraz jego ID id będą zachowane w sesji użytkownika user oraz będzie można do nich uzyskać dostęp z dowolnego miejsca w naszym kodzie poprzez:

Yii::app()->user

 
Sub-Article List