2017-09-19 13 views
0

私はyiiが新しく、サイトコントローラのデフォルトの動作機能を使って簡単な認証を作成しようとしていました。yii2がpostメソッドを使用してログアウトしたいのはなぜですか?

行われたときに、私はログインできますがログアウトできず、エラーが示された。

Method Not Allowed. This url can only handle the following request methods: POST. 

その後、私はコントローラをチェックして気づいた:

public function behaviors() 
{ 
    return [ 
     'access' => [ 
      'class' => AccessControl::className(), 
      'rules' => [ 
       [ 
        'actions' => ['login', 'error'], 
        'allow' => true, 
       ], 
       [ 
        'actions' => ['logout', 'index'], 
        'allow' => true, 
        'roles' => ['@'], 
       ], 
      ], 
     ], 
     'verbs' => [ 
      'class' => VerbFilter::className(), 
      'actions' => [ 
       'logout' => ['post'], 
      ], 
     ], 
    ]; 
} 

私は

'actions' => [ 
    'logout' => ['post'], 
], 
を変更

~

'actions' => [ 
    'logout' => ['get'], 
], 

とうまくいきました。

私はこの背後にある概念が何であり、なぜyiiがログアウトのためにpostメソッドを使いたいのだろうかと思います。

答えて

0

Cross-site request forgeryからログアウトするには、ログアウトする必要があります。要求にはCSRFトークンが含まれている必要があります。これは次のように取得できます。

Yii::$app->request->csrfParam 
関連する問題