2017-09-19 1 views
0

저는 yii를 처음 사용하고 사이트 컨트롤러의 기본 동작 기능을 사용하여 간단한 인증을 만들려고했습니다. 완료되면yii2가 게시 방법을 통해 로그 아웃하려고하는 이유

, 내가 로그인 할 수 있지만, 로그 아웃 할 수 없습니다 및 오류가 표시되었습니다

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'], 
], 
변경

to

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

그리고 정상적으로 작동합니다.

나는이 개념의 배경이 무엇인지, 왜 yii가 로그 아웃을 위해 post 방법을 사용하고 싶어하는지 궁금합니다.

답변

0

Cross-site request forgery에 대한 로그 아웃은 로그 아웃해야합니다. 요청에는 CSRF 토큰이 포함되어야합니다. 다음과 같이 구할 수 있습니다 :

Yii::$app->request->csrfParam