Я сделал PHP Тонкий сервер. Аутентификация для него и CSRF.
Я хочу использовать его в качестве сервера REST.
Я создал приложение, используя IonicFramework который использует угловатый.
Я хочу аутентифицировать себя с помощью этого кода
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 с новыми методами в AuthController.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?
Задача ещё не решена.
Других решений пока нет …