YII2: ändern der SessionID duch eigene SID, beim ersten Aufruf

Hallo,

ich nutze YII2 seit einer Weile muss aber jetzt, statt mit Datenbanken meine Daten aus Webservices beziehen.

Jetzt will ich sobald ein Besucher irgendeine Seite aufruft, von einem Webservice generierte SessionID (anonymeSid) übernehmen und als Coockie setzen. Wenn er sich einloggt soll diese wieder durch eine LoginSID ersetzt werden (geht mit IdentityInterface)

Nur finde ich keinen Punkt wie bzw. wo ich das Framework anpassen kann. In jeden Controller will ich das nicht packen, da zu aufwendig wenn sich etwas ändert.

Wo kann ich diese Funktion einbauen, ohne das Framework zu ändern?

Grüße

Oliver

Hi s.oli,

ich denke da würde dir der Standart Controller weiter helfen.




<?php

namespace app\component;


class Controller extends \yii\web\Controller

{

    public function beforeAction($action)

    {

       // your code

       return parent::beforeAction($action);

    }

}



Hallo Julian,

sorry für die späte Antwort. Der Tipp war genau richtig für mich. Hatte noch ein paar Schwierigkeiten mit dem Namespace app\controllers, hab das mit namespace frontend\components; gelöst.

Funktioniert soweit ganz gut. Jetzt habe ich ein anderes Problem:

Wenn ich ACF verwende und eine action nur für registrierte User zulasse, dann wird ohne login automatisch das Login Formular angezeigt. Allerdings wenn der User sich angemeldet hat, wird er zur startseite umgeleitet und nich zu der seite die er ursprünglich aufrufen wollte

Beispiel

HINWEIS: angezeigte Seite ist /site/index, /produkt/details/12 wird über das Menu/Navigation ausgewählt.

/produkt/details/12 (acf nur für eingeloggte user, zustand nicht eingeloggt)

/user/login (Login Form)

/site/index (nachdem einloggen)

sollte aber wieder zurück zur

/produkt/details/12

habe schon alles mögliche über sessions getetet referer, returnurl, back home , aber die angeklickete nie gezeigte seite /produkt/details/12 wird anscheinend nirgends registriert.

wenn ich die acf rausnehme, und /produkt/details/12 aufrufe, mich dann einlogge, dann hab ich es schon hinbekommen das der redirect nicht funktioniert ist aber nicht das was ich will.

Wunsch:

/produkt/details/12 (acf nur für eingeloggte user, zustand nicht eingeloggt, automatisch redir zu login)

/user/login (Login Form, einloggen und redir zu /produkt/details/12)

/produkt/details/12

geht so was?

GrußOli