javascript - 曲奇 PHP LARAVEL
问题描述
我有一个使用 jQuery 方法在 PHP 中创建的 cookie,其中客户端在输入中输入一个值,这个 cookie 是用该值创建的,而更多的值是用逗号创建的。
jQuery 中的示例创建 cookie:
<script type="text/javascript">
$(function () {
$("#btnAdd").click(function () {
if($('#addtokendelivery').val() === ''){
alert('Valor en Blanco');
}
else {
if ($.cookie('DeliveryToken')) {
$.cookie("DeliveryToken", $.cookie("DeliveryToken") + ',' + $("#addtokendelivery").val());
alert('Repartidores Agregados con Token´s: ' + $.cookie("DeliveryToken"));
} else{
$.cookie("DeliveryToken", $("#addtokendelivery").val());
alert('Repartidor Agregado con Token: ' + $.cookie("DeliveryToken"));
}
}
});
$("#btnRead").click(function () {
alert($.cookie("DeliveryToken"));
});
});
</script>
谷歌浏览器值中的示例 cookie:
DeliveryToken: value1,value2,value3
在 laravel 中比较的变量示例:
$orderitemaddons32 = DB::table('users')->where('id', $id)->first();
$orderitemaddons32 = $orderitemaddons32->userdelivery_id;
//result variable dd laravel
"value1"
例如,如果它检测到值 1 在 cookie 中,它会继续显示页面。
我想要的是在 laravel 刀片中验证 cookie 是否与它在我的函数中创建的变量的信息匹配并显示页面,否则不显示它或发出信息无效的消息。
解决方案
有很多方法可以做你想做的事。
为了在是否继续请求之前有条件,通常使用中间件。 https://laravel.com/docs/8.x/middleware 从中间件,您可以继续请求或将用户重定向到另一个页面。
我猜你的代码在 laravel 中可能是这样的:
$values = explode(',', $_COOKIE['DeliveryToken']);
if (in_array($orderitemaddons32, $values) {
//all good, proceed
// return $next($request);
} else {
/*
* return redirect()->route('home', [
* 'message' => 'The information is not valid'
* ]);
*/
}
顺便说一句,我发现使用 cookie 并不能保证这种使用的安全性,我的意思是,从 javascript 设置它们,而不是加密它们并在服务器端保护它们。可以轻松更改 cookie 的值。您可以将 cookie 留给 laravel,因此也可以使用内置函数。
推荐阅读
- java - 当我运行 `./gradlew wrapper` 时,Minecraft Forge 帽子会导致此错误?
- python - 在 Python 中读取 npm start 控制台输出
- mysql - MySQL:插入日志中的列为空
- django - django 中的 {% url %} 是什么?
- java - Android Facebook 登录弹出对话框
- android - 构建android源代码后如何刷到设备?
- vector - SymPy 中的向量积求和
- html - 为什么 Chrome 会报告我的代码中没有的 element.style 规则?
- python - 为什么我不能在此代码中将“elif”的条件放在“if”条件的同一行中?
- c# - 我正在运行一个 task.delay 异步函数,但是当我关闭表单并再次打开它时它仍然有效吗?