مقدمة
ملف تعريف الارتباط: Cookie هي تقنية عميل ، ويكتب البرنامج بيانات كل مستخدم إلى متصفح المستخدم المعني في شكل ملف تعريف ارتباط.
عندما يستخدم المستخدم متصفحًا للوصول إلى موارد الويب في الخادم ، فإنه سيحضر منطقة البيانات الخاصة به ، بحيث تقوم موارد الويب بمعالجة بياناتها الخاصة.
الجلسة: الجلسة هي تقنية من جانب الخادم. باستخدام تقنية الجلسة ، يمكن للخادم إنشاء كائن جلسة خاص به لمتصفح كل مستخدم عند تشغيله. نظرًا لأن الجلسة حصرية لمتصفح المستخدم ، عندما يصل المستخدم إلى موارد الويب الخاصة بالخادم ، يمكن للمستخدم وضع بياناته الخاصة في الجلسة. عندما يصل المستخدم إلى موارد الويب الأخرى في الخادم مرة أخرى ، ستكون موارد الويب الأخرى من جلسة المستخدم المعنية.
أخرج البيانات لخدمة المستخدم.
الاختلافات الرئيسية بين الجلسة وملفات تعريف الارتباط:
غالبًا ما نستخدم الجلسة لتخزين بعض معلومات تسجيل الدخول الخاصة بالمستخدم للتحقق مما إذا كان المستخدم متصلاً بالإنترنت. هذا هو أسهل حل على شبكة الإنترنت ليتم تنفيذه. تستخدم هذه المقالة إطار عمل SSM (Spring ، SpringMVC ، MyBatis) كحامل لتنفيذ نظام تسجيل الدخول هذا على وجه التحديد.
الطريقة كما يلي:
1. تمرير اسم المستخدم وكلمة المرور إلى واجهة الواجهة الخلفية عبر الواجهة الأمامية. بعد أن تحصل الواجهة على القيمة ، يتم تشفير MD5 ، ويقارنها مع الحقول الموجودة في قاعدة البيانات ، وإرجاع الحالة إلى الواجهة الأمامية ، وتنقل الواجهة الأمامية الصفحة وفقًا لقيمة الإرجاع.
فئة أدوات تشفير MD5
سلسلة EncoderByMd5 (String STR) يلقي NosuchalgorithMexception ، UnduportedEncodingException {// تحديد طريقة الحساب messagedigest md5 = messagedigest.getInstance ("MD5") ؛ BASE64ENCODER BASE64EN = NEW BASE64ENCODER () ؛ . إرجاع الأخبار ؛ }طبقة داو و mapper
<select id = "valiteuser" parametertype = "java.lang.string" resulttype = "com.heitian.ssm.model.userinfo"
فئة تنفيذ طبقة الخدمة
السلسلة العامة Valiteuser (userInfo userInfo) {try {userInfo userDemo = userDao.valiteuser (encoderByMd5 (userInfo.getuserName ())) ؛ if (userInfo.getPassword (). equals (userDemo.getPassword ())) {return "pass" ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ إرجاع "خطأ" ؛ } إرجاع "رفض" ؛ }طبقة وحدة التحكم
ResponseBodyReQuestMapping ("/loginuser") HashMap العامة <string ، Object> loginUser (httpservletrequest request ، userInfo userinfo) {hashmap <string ، object> result = new hashmap <string ، object> () ؛ جلسة httpsession = request.getSession () ؛ System.out.println ("Login Fail") ؛ حالة السلسلة = userservice.valiteuser (userInfo) ؛ if (status.equals ("pass")) {session.setAttribute ("current_user" ، userInfo.getUserName ()) ؛ النتيجة. } آخر {if (status.equals ("refuse")) {result.put ("status" ، "refuse") ؛ } آخر {result.put ("الحالة" ، "خطأ") ؛ }} نتيجة الإرجاع ؛ }من خلال إعادة معلومات الحالة ، يمكننا تحديد ما إذا كان تسجيل الدخول ناجحًا. إذا نجحت ، فاكتب زوج قيمة اسم المستخدم إلى الجلسة.
2. عند الوصول إلى الصفحات الأخرى ، كيفية تحديد ما إذا كان أي مستخدم يقوم بتسجيل الدخول عبر الإنترنت؟ يمكنني استخدام JS للحصول على قيمة الجلسة للحكم.
هذا هو: أولاً احصل على قيمة الجلسة. إذا كان فارغًا أو فارغًا ، فهذا يعني أن الجلسة لا تحتوي على سلوك تسجيل الدخول قبل ذلك. نقوم بإعادة توجيهه تلقائيًا إلى الصفحة الرئيسية. إذا كانت هناك قيمة ، فهذا يعني أن هناك سلوك تسجيل الدخول ، وأن المستخدم الذي قام بتسجيل الدخول عبر الإنترنت هو Current_user
في هذا الوقت ، يمكننا استخدام اسم المستخدم لضبط واجهة الخلفية.
<script language = "javaScript"> $ (document) .Ready (function () {var myName = "<٪ = session.getAttribute (" current_user ") ٪>" ؛ var projectID1 = "<٪ = request.getAttribute (" projectId ") ٪>" ؛ if (myName == "null") } </script>3. تسجيل المستخدم
تسجيل الخروج ، أي ، مسح القيمة في الجلسة ، وسيتم فتح واجهة تسجيل الخروج من الخلفية.
requestmapping ("/quituser") السلسلة العامة quituser (طلب httpservletrequest) {httpsession session = request.getSession () ؛ Session.RemoVeatTribute ("Current_user") ؛ إرجاع "فهرس" ؛ }هذا يدرك نظام إدارة المستخدم من تسجيل الدخول إلى تسجيل الدخول ، ولكن هذا هو النظام الأساسي ، والأمان يمثل مشكلة كبيرة ، لذلك لا تزال حلول التحقق مثل JWT مفيدة للغاية.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.