Empfehlungen: Erweiterte Suche

Auth Component - Sessions

Klassen zur Datenverarbeitung in den Controllern (DRY)

Auth Component - Sessions

Beitragvon spearhead » Sa 7. Mai 2011, 19:14

Hallo,

hätte da mal eine Frage. Ich müsste nach dem Login (mittels Auth Component) noch ein paar Daten für das Default Layout aus der DB holen und dann auch in die Session schreiben. in der login() Funktion kann ich dies jedoch schwer machen da ja zu diesem Zeitpunkt noch kein User bekannt ist.

Ich habs jetzt so gelöst, dass ich nach dem Login auf eine Funktion redirecte dort mir die user id hole, mir dann weitere daten aus der DB hole die wiederum in die Session schreibe und dann zur eigentlichen Hauptseite weiterleite. Frage mich nur ob das nicht besser geht?
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: Auth Component - Sessions

Beitragvon Mathias » So 8. Mai 2011, 17:28

Du kannst doch in der login-Funktion weitere Abfragen machen. Zum einen steht dir die ID zur Verfügung, zum anderen ja auch der Login-Name oder die E-Mail-Adresse aus dem Login-Formular.

Ich update zum Beispiel die Zeit des letzten Logins in der login-Funktion.
Code: Alles auswählen
    function login() {
        if ($this->Auth->user()) {
            if (!empty($this->data)) {
                if ($this->User->updateAll(array('last_login' => 'NOW()'), array('username' => $this->data['User']['username']))){
                    $this->Session->setFlash(__('Logged in', true), 'default', array('class' => 'success'));
                    $this->redirect(array('controller' => 'users', 'action' => 'view'));
                }
            }
        }  
    }


Hoffe, das hilft dir etwas weiter.
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Auth Component - Sessions

Beitragvon spearhead » Mo 9. Mai 2011, 18:15

Naja wenn ich hier deinen code übernehme sinngemäß scheiterst bei mir schon mal daran dass bei mir $this->data leer ist.... :?
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: Auth Component - Sessions

Beitragvon Mathias » Mo 9. Mai 2011, 22:29

$this->data ist leer? Wie loggst du denn einen User ein? Wenn ein Formular zum Einloggen genutzt wird, müssen doch Daten im Array sein.

Zeig mal deine Funktion.
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Auth Component - Sessions

Beitragvon spearhead » Di 10. Mai 2011, 20:49

Also ich habe die Auth Component im App Controller so eingebunden: (Tabelle USERS heisst in meiner DB Admin)
Code: Alles auswählen


class AppController extends Controller{
var $components = array('Session','Auth');

function beforeFilter(){
        $this->Auth->userModel = 'Admin';
        $this->Auth->loginAction = array('controller' => 'admins', 'action' => 'login');
        //$this->Auth->allow('display');
        //$this->Auth->authorize = 'controller';
}
function isAuthorized() {
        return true;
}


}
 


In meinem Admins Controller steht dann
Code: Alles auswählen

<?php

class AdminsController extends AppController{


function login(){

if($this->Auth->User()){
//pr($this->Auth->User());      
pr($this->data);
//      if(!empty($this->params)){
//              pr($this->params);
//}
}
}
function logout(){
          $this->redirect($this->Auth->logout());
 


Analog der View dazu:
Code: Alles auswählen
    echo $this->Session->flash('auth');
    echo $this->Form->create('Admin', array('action' => 'login'));
    echo $this->Form->input('username');
    echo $this->Form->input('password');
    echo $this->Form->end('Login');



 


lg und danke
spearhead
 
Beiträge: 26
Registriert: Do 7. Jan 2010, 22:30
CakePHP-Version: 1.3
OS: OSX

Re: Auth Component - Sessions

Beitragvon Marco1972 » Fr 26. Aug 2011, 20:13

Also bei mir geht Dein Vorschlag auch nicht.
Er legt dann einen neuen User an, aber ohne Usernamen.
Marco1972
 
Beiträge: 2
Registriert: Fr 26. Aug 2011, 20:11


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast