yii2のクッキーをクリアすることに関するいくつかの問題に直面しています。私は、次の操作を実行しようとしていますクリックボタンにログアウト機能を呼び出していた場合:関数呼び出しの後にyii2のクッキーを消去する
- authTokenの設定、およびその有効期限の値をステップが行われ、その後明確なセッションとクッキー
しかし、問題は、authtokenとその有効期限の値をnullに設定した後です。制御はブロックの下にはありません(私はセッションとクッキーをクリアしています)。 AuthtokenAction
public static function setauthtoken($userId,$token,$expire)
{
return Authmaster::updateAll(['token'=>$token,'expire'=>$expire],['user_id'=>$userId]);
}
からというモデルで
<?php
namespace app\actions\userloginactions;
use Yii;
use yii\rest\ActiveController;
use app\models\Authmaster;
use yii\base\Action;
class AuthtokenAction extends Action
{
//function used in rest api call for user token
public function run()
{
$data = Yii::$app->getRequest()->getBodyParams();
$userId = $data['userId'];
$token = $data['token'];
$expire = $data['expire'];
$result = Authmaster::setauthtoken($userId,$token,$expire);
return true;
}
}
setauthtoken機能私はログアウトボタンをクリックしたときに、それが正常にnullに持つAuthTokenと有効期限を設定します。
public function actionLogout()
{
$userId = \Yii::$app->user->identity->id;
$restobj = new RestController();
$this->token = NuLL;
$expire = Null;
$data = ['userId'=>$userId,'token'=>$this->token,'expire'=>$expire];
$data = json_encode($data);
$authtoken = $restobj->updateItem(\app\urls\urls::setauthtoken, $data);
if($authtoken)
{
$session = new Session();
$session->close();
$session->destroy();
$cookies = \Yii::$app->response->cookies;
unset($cookies['user_cookies']);
Yii::$app->user->logout();
return $this->goHome();
}
}
updateItem機能は、この持つAuthToken関数を呼び出していますAuthtokenAction関数の結果としてtrueを直接表示し、制御がブロックの下には行かない。 私はそれをコメントしてブロックを直接クリアしてからクッキーが問題なくクリアされると、その関数呼び出しは何らかの問題を作り出しています。
感謝。 –
このスレッドをチェックするhttp://stackoverflow.com/questions/2310558/how-to-delete-all-cookies-of-my-website-in-php –
ありがとうございます。問題は、updateItemを直接使用して呼び出される関数が、結果はその呼び出しの後に残りのコードをスキップして、制御を戻して、私のケースでは起こらない$ authtoken変数に結果を代入する必要があります。 –