اشتراکها
ASP.NET Core 2.1.0-rc1 منتشر شد
در گذشته نه چندان دور، کوکیها نقش اصلی را در مدیریت کاربران ، و ذخیره اطلاعات کاربران ایفا میکردند. ولی بعد از کشف شدن باگ امنیتی ( که ناشی از اشتباه برنامه نویس بود ) در کوکی ها، برای مدتی کنار گذاشته شدند و اکثر اطلاعات کاربران در session های سمت سرور ذخیره میشد.
با کلیک بر روی لینک Write کوکی data با مقدار مشخص پر میشود.
ذخیره اطلاعات زیاد و نه چندان مهم کاربران در session های سمت سرور ، بار زیادی را به سخت افزار تحمیل میکرد. بعد از این، برنامه نویسان به سمتی استفاده متعادل از هرکدام اینها ( کوکی و سشن) رفتند.
اکثر دوستان با مدیریت سمت سرور کوکیها آشنایی دارند ، بنده قصد دارم در اینجا با استفاده از یک پلاگین جی کوئری مدیریت کوکیها را نمایش دهم.
در این برنامه ما از پلاگی jQuery.cookie استفاده میکنیم که شما میتوانید با مراجعه به صفحه این پلاگین اطلاعات کاملی از این پلاگین به دست بیاورید.
کار با این پلاگین بسیار ساده است.
ابتدا فایل پلاگین را به صفحه خودتون اضافه میکنید.
<script src="/path/to/jquery.cookie.js"></script>
حالا خیلی راحت میتوانید با این دستور یک مقدار را در کوکی قرار دهید.
$.cookie('the_cookie', 'the_value');
و برای گرفتن کوکی نوشته شده هم به این صورت عمل میکنید.
$.cookie('the_cookie'); // => "the_value"
همان طور که دیدید کار بسیار ساده ای است. ولی قدرت این پلاگین در option هایی است که در اختیار ما قرار میدهد.
مثلا شما میتوانید انتخاب کنید این کوکی برای چند روز معتبر باشد ، و یا اطلاعات را به صورت json ذخیره و بازیابی کنید، و حتی option های دیگری برای بحث امنیت کوکی شما.
برای درک بهتر از قطعه کدی که کمی پیچیدهتر از مثال منبع است، استفاده میکنیم.
به کد زیر توجه کنید :
JavaScript :
<script type="text/javascript"> $(function () { $('#write').click(function () { $.cookie('data', '{"iri":"Iran","usa":"United States"}', { expires: 365, json: true }); alert('Writed'); }); $('#show').click(function () { var obj = jQuery.parseJSON($.cookie('data')); alert(obj.iri); }); $('#remove').click(function () { $.removeCookie('data'); }); }) </script>
HTML :
<body> <a href="#" id="write">Write</a> <br /> <a href="#" id="show">Show</a> <br /> <a href="#" id="remove">Remove</a> </body>
در اینجا ما سه لینک داریم که هر کدام برای ما عملی را نمایش میدهند.
توضیحات کد :
$('#write').click(function () { $.cookie('data', '{"iri":"Iran","usa":"United States"}', { expires: 365, json: true }); alert('Writed'); });
با کلیک بر روی لینک Write کوکی data با مقدار مشخص پر میشود.
دقت داشته باشید که این مقدار از نوع json انتخاب شده است و در انتها نیز این را مشخص کرده ایم ، همچنین اعلام کرده ایم که این کوکی برای 365 روز معتبر است.
حالا مرورگر خودتان را ببندید و دوباره باز کنید.
این بار بر روی Show کلیک میکنیم :
$('#show').click(function () { var obj = jQuery.parseJSON($.cookie('data')); alert(obj.iri);
با کلیک بر روی لینک Show مقدار از کوکی خوانده میشود و نمایش داده میشود. دقت کنید ، به دلیل اینکه مقدار ذخیره شده ما از نوع json است باید دوباره این مقدار را pars کنیم تا به مقادیر property آن دسترسی داشته باشیم.
همچنین شما میتوانید خیلی راحت کوکی ساخته شده را از بین ببرید :
$('#remove').click(function () { $.removeCookie('data'); });
و یا این که کوکی را برابر null قرار دهید.
نکته ای که باید رعایت کنید و در این مثال هم نیامده است ، این است که ، هنگامی که شما میخواهید object ی که با کد تولید کرده اید در کوکی قرار بدهید ، باید از متد JSON.stringify استفاده کنید و مقدار را به این صورت در کوکی قرار دهید.
$.cookie('data', JSON.stringify(jsonobject), { expires: 365, json: true });
که در اینجا jsonobject ، ابجکتی است که شما تولید کرده اید و قصد ذخیره آن را دارید.
من از این امکان در نسخه بعدی این پروژه استفاده کرده ام ، و به کمک این پلاگین ساده اما مفید ، وب سایت هایی که کاربر نتایج آن را مشاهده کرده است در کوکی کاربر ذخیره میکنم تا در مراجعه بعدی میزان تغییرات رنکینگهای وب سایت ای در خواست شده را ، به کاربر نمایش دهم. نسخه بعد all-ranks.com تا آخر هفته آینده در سرور اختصاصی ( و نه این هاست رایگان (!)) قرار میگیرد و به مرور قسمت هایی که در این پروژه پیاده سازی شده (پلاگینهای جی کوئری و کدهای سرور ) در اینجا شرح میدهم.
امیدوارم تونسته باشم مطلب مفید و مناسبی به شما دوستان عزیزم انتقال بدم.
اشتراکها
کامپوننت WPF Designer
اشتراکها
بوهای کد: جهش
اشتراکها