如何在 Appcelerator 的表单中设置 CSRF?
How can I set CSRF in a form in Appcelerator?
我正在创建一个有登录名的应用程序。我希望该登录名与用户名和密码相匹配,但我无法做到这一点,因为我无法发送“_token”字段,而且我不能生成应用程序将等待的相同令牌。
这是我当前的表格:
<View id="loginView" layout="vertical">
<TextField id="inputUsername" />
<TextField id="inputPassword" passwordMask="true" />
<Button id="buttonLogin" onClick="performLogin" />
<ActivityIndicator id="activityIndicator" />
</View>
这是我当前在 Appcelerator 上的登录请求。
loginReq.open("POST","http://192.168.100.29/miapp/mobile/auth/login");
var params = {
username: $.inputUsername.value,
password: $.inputPassword.value
};
loginReq.send(params);
它应该是这样的:
loginReq.open("POST","http://192.168.100.29/miapp/mobile/auth/login");
var params = {
username: $.inputUsername.value,
password: $.inputPassword.value,
_token: $.inputTokenOrSomething.value
};
loginReq.send(params);
另外我在Laravel中的routes.php文件中创建了一个路由,如下:
Route::get("mobile/auth/login", function(){
echo ("Debug"); exit;
});
有人有想法吗?谢谢。
通常您希望通过请求 Header 发送 CSRF 令牌。这是在向 Drupal 发送令牌时使用 Appcelerator 完成的方式:
loginReq.open("POST","URL");
loginReq.setRequestHeader('X-CSRF-Token',TOKENHERE);
loginReq.send(params);
请注意,您的请求 Header 在打开之后发送,但在发送之前发送。
编辑:
忘记添加 - 通常您发送不带令牌的登录,然后在成功登录后从服务器响应中捕获令牌(通常作为 XML、JSON 等发送。 .. 取决于设置)。每当您需要对自己进行身份验证以执行操作(如发布、删除内容)时,都会在请求 headers 中存储和发送此令牌。同样,这一切都取决于设置。
我正在创建一个有登录名的应用程序。我希望该登录名与用户名和密码相匹配,但我无法做到这一点,因为我无法发送“_token”字段,而且我不能生成应用程序将等待的相同令牌。
这是我当前的表格:
<View id="loginView" layout="vertical">
<TextField id="inputUsername" />
<TextField id="inputPassword" passwordMask="true" />
<Button id="buttonLogin" onClick="performLogin" />
<ActivityIndicator id="activityIndicator" />
</View>
这是我当前在 Appcelerator 上的登录请求。
loginReq.open("POST","http://192.168.100.29/miapp/mobile/auth/login");
var params = {
username: $.inputUsername.value,
password: $.inputPassword.value
};
loginReq.send(params);
它应该是这样的:
loginReq.open("POST","http://192.168.100.29/miapp/mobile/auth/login");
var params = {
username: $.inputUsername.value,
password: $.inputPassword.value,
_token: $.inputTokenOrSomething.value
};
loginReq.send(params);
另外我在Laravel中的routes.php文件中创建了一个路由,如下:
Route::get("mobile/auth/login", function(){
echo ("Debug"); exit;
});
有人有想法吗?谢谢。
通常您希望通过请求 Header 发送 CSRF 令牌。这是在向 Drupal 发送令牌时使用 Appcelerator 完成的方式:
loginReq.open("POST","URL");
loginReq.setRequestHeader('X-CSRF-Token',TOKENHERE);
loginReq.send(params);
请注意,您的请求 Header 在打开之后发送,但在发送之前发送。
编辑:
忘记添加 - 通常您发送不带令牌的登录,然后在成功登录后从服务器响应中捕获令牌(通常作为 XML、JSON 等发送。 .. 取决于设置)。每当您需要对自己进行身份验证以执行操作(如发布、删除内容)时,都会在请求 headers 中存储和发送此令牌。同样,这一切都取决于设置。