离子v3角v5不能将CSRF传递给php Slim服务器

时间:2018-03-02 11:13:11

标签: php angular ionic-framework ionic3 slim

我已经制作了PHP Slim服务器。对其进行身份验证和CSRF。 我想将它用作REST服务器。

我使用IonicFramework创建了一个使用Angular

的应用

我想用此代码验证自己

let hheaders:Headers=new Headers();
    hheaders.append('Access-Control-Allow-Origin' , '*');
    hheaders.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
    hheaders.append('Accept','application/json');

    let options = new RequestOptions({ headers:hheaders});

     let data = new FormData();
     data.append("email", this.myForm.email);
     data.append("password", this.myForm.password);
     data.append("csrf_name", this.myForm.csrf_name);
     data.append("csrf_value", this.myForm.csrf_value);

     return this.http.post('http://10.1.3.101:8088/public/auth/signinservice',data,this.options)
    .map(res => res.json())
    .toPromise();

但我总是得到Failed CSRF check!我不知道问题是什么。此时Slim Server是基本的。这个Github projectAuthController.php中的新方法非常简单且类似 像

public function getSignInService($request, $response){

        $nameKey = $this->csrf->getTokenNameKey();
        $valueKey = $this->csrf->getTokenValueKey();
        $name = $request->getAttribute($nameKey);
        $value = $request->getAttribute($valueKey);

        $tokenArray = [
            $nameKey => $name,
            $valueKey => $value
        ];


    return $response->write(json_encode($tokenArray));
    }

   public function postSignInService($request, $response, $args){



        $auth = $this->auth->attempt(

            $request->getParam('email'),
            $request->getParam('password')

        );

        if(!$auth){
            $data = array('status' => 'error');
            $newResponse = $response->withJson($data, 203);
            return $newResponse;


        }


        $data = array('status' => 'Successful login');
        $newResponse = $response->withJson($data, 200);
        return $newResponse;
    }

并添加了方法的路线。

我如何成功通过Ionic v3和Angular v5进行身份验证?

0 个答案:

没有答案