>source

원격 서버에서 데이터를 게시하고 가져 오는 원시 앱이 있습니다. 게시물에서는 토큰 불일치 오류를 피하기 위해 CSRF 토큰을 포함시켜야합니다. 이것은 백엔드 Laravel 메서드입니다

//Android Login
    public function androidLogin(){
      return response()->json([
        'name'=> 'Android Login',
        'route'=> 'androidLogin'
            ]);
    }

이것은 Areavy Native code입니다 (오류 잡기 code를 제거했습니다).

async handleSubmit(){
  var me= this.state.message;
  console.log('this connected',me);
      let response= await fetch('http://not-brusselus.be/androidLogin', {
                              method: 'POST',
                              headers: {
                                'Accept': 'application/json',
                                'Content-Type': 'application/json',
                                'X-CSRF-TOKEN':'csrf_field()'
                              },
                              body: JSON.stringify({
                                session:{
                                  email: '[email protected]',
                                  password: '123456',
                                }
                              })
                            });
      //let res= await response.text();
      if (true) {
         console.log(response);
      } else {
          //Handle error
          //let error= res;
          //throw error;
      }
  }

응답은 LARAVEL의 토큰 불일치 페이지를 보여줍니다. CSRF 토큰을 성공적으로 보낼 수 있습니까?

  • 답변 # 1

    csrf 토큰을 빼냅니다.창문주요 Lavel 레이아웃 파일에 정의 된대로 :

    window.Laravel= {
        csrfToken: '{{csrf_token()}}'
    }
    

    다음은 JavaScript 요청에서 사용하기 만하면됩니다.

    ...window.Laravel.csrfToken
    

    편집

    다운버터에 : 이것은 문자 그대로 LARAVEL이 상자에서 어떻게 나오는지, 당신이 그것을 할 것을 권장합니다.

    토큰은 본문이나 헤더에 들어갑니다.

    user32864302021-05-11 02:47:47

    @mongodb 당신은 그것을 헤더로 전달할 수 있거나 몸에서 _token으로 전달할 수 있습니다.

    Ohgodwhy2021-05-11 02:47:47
  • 답변 # 2

    @OHGODY, 나는 반응 프로젝트에서 유사한 오류가 있고있다. 그것을 해결할 생각이 있습니까? CSRF 토큰 mismatchenter 이미지 설명이 여기에있는 내 콘솔에서 보여줍니다.

  • 이전 Helm 업그레이드가 번거롭습니다
  • 다음 html : BootStrap 기반 템플릿에서 중심을두고 있지 않습니다