يشارك هذا المثال الكود المحدد لتسجيل دخول رمز التحقق من Springboot للرجوع إليه. المحتوى المحدد كما يلي
نظرًا لأن رموز التحقق مطلوبة في المشروع ، سألخص كيفية حل متطلبات المشروع بسرعة في رمز التحقق من المشروع. فيما يلي مثال موصى به لرموز التحقق للجميع للبدء.
1. اكتب فئة أدوات رمز التحقق
استيراد java.awt.color ؛ استيراد java.awt.font ؛ استيراد java.awt.graphics ؛ استيراد java.awt.image.bufferedImage ؛ استيراد java.io.fileOutputStream ؛ import java.ioexception ؛ * Author zct * date 6 فبراير 2018 * param * desc code code generation generation * */public class VerifyUtil {// code code charace char char [] char [] {{'0' ، '1' ، '2' ، '3' ، '4' ، '5' ، '6' ، '8' ، ' "e '،' f '،' g '،' h '،' i '،' j '،' k '،' l '،' m '،' n '،' o '،' p '،' q '،' r '،' s '،' t '، u' ،" ، "،" ، "،" ، "،" ، "،" ، "،". 'h' ، 'i' ، 'j' ، 'k' ، 'l' ، 'm' ، 'n' ، 'o' ، 'p' ، 'q' ، 'r' ، 's' ، 't' ، 'u' ، 'v' ، 'w' ، 'x' ، 'z'} ؛ // عدد الأحرف الخاصة ذات الحجم النهائي الثابتة = 4 ؛ // عدد خطوط التداخل الخطوط النهائية الثابتة الخاصة = 5 ؛ // عرض خاص نهائي ثابت ثابت = 80 ؛ // الارتفاع الأساسي الثابت النهائي في الارتفاع = 40 ؛ // size font private static int font_size = 30 ؛ /*** إنشاء رمز التحقق العشوائي والصور* كائن [0]: سلسلة رمز التحقق ؛ * كائن [1]: صورة رمز التحقق. */ كائن ثابت عام [] createImage () {StringBuffer SB = جديد StringBuffer () ؛ ] // 2. احصل على الرسومات الرسمية للفرشاة الصورة = Image.getGraphics () ؛ // 3. اضبط Graphics.setColor (color.light_gray) ؛ // 4. ارسم رسومات الخلفية المستطيل. // 5. رسم أحرف عشوائية RANDAY RAN = New Random () ؛ لـ (int i = 0 ؛ i <size ؛ i ++) {// خذ مؤشر الأحرف العشوائية int n = run.nextint (chars.length) ؛ // اضبط اللون العشوائي Graphic.setColor (getRandomColor ()) ؛ // اضبط حجم الخط Graphic.setFont (خط جديد (null ، font.bold + font.italic ، font_size)) ؛ // رسم حرف Graphic.DrawString (chars [n] + "" ، i * width/ size ، الارتفاع * 2/3) ؛ // سجلات تسجيل sb.append (chars [n]) ؛ } // 6. ارسم خط التداخل لـ (int i = 0 ؛ i <lines ؛ i ++) {// set random color graphic.setColor (getRandomColor ()) ؛ // Random Color Graphic.Drawline (Ran.NextInt (العرض) ، ran.nextint (الارتفاع) ، RAN.NEXTINT (العرض) ، RAN.NEXTINT (الارتفاع)) ؛ } // 7. إرجاع رمز التحقق والصورة إرجاع كائن جديد [] {sb.toString () ، Image} ؛ } / *** اللون العشوائي* / اللون الثابت العام getRandomColor () {Random Run = new Random () ؛ لون اللون = لون جديد (RAN.NEXTINT (256) ، RAN.NEXTINT (256) ، RAN.NEXTINT (256)) ؛ لون العودة }}2. استخدم طبقة وحدة التحكم
تحقق من أن اسم المستخدم وكلمة المرور متسقة مع رمز التحقق
/*** بوابة تسجيل الدخول** param اسم المستخدم المستخدم* param password password* param code code* @param repress json json repring بنجاح 200 ، والعودة الفاشلة 500*/ @apiOperation ("usiname") postmapping ("/login") apiParam ("كلمة المرور") @requestparam سلسلة كلمة مرور ، apiParam ("رمز التحقق") رمز سلسلة requestparam ، httpservletresponse ، httpservletrequest request) {httpsession session = request.getSession () ؛ if (session.getAttribute ("ImageCode") == NULL) {renderFail (استجابة ، "رمز التحقق من Reget") ؛ } آخر {if (session.getAttribute ("ImageCode"). if (user == null) {renderfail (استجابة ، "فشل تسجيل الدخول") ؛ } آخر {rendersuccess (استجابة ، "تسجيل الدخول") ؛ }} آخر {renderFail (استجابة ، "خطأ رمز التحقق") ؛ }}}هنا ، يتم استخدام الطلب للحصول على رمز التحقق. الواجهة للحصول على رمز التحقق كما يلي
apiOperation ("إنشاء رمز التحقق") getMapping ("/getCode") public void getCode (httpservletresponse ، request httpservletrequest) يلقي استثناء {httpsession session = request.getSession () ؛ // استخدم أدوات الصور لإنشاء الصور // المعلمة الأولى هي رمز التحقق الذي تم إنشاؤه ، والمعلمة الثانية هي كائن الصورة المولد [] OBJS = VerifyUtil.CreateImage () ؛ // store code code in session.setattribute ("ImageCode" ، OBJS [0]) ؛ // إخراج الصورة إلى صورة BufferedImage للمتصفح = (BufferedImage) OBJs [1] ؛ استجابة. OutputStream OS = response.getOutputStream () ؛ imageio.write (صورة ، "png" ، OS) ؛ }3. اختبار الكود
هنا اختبار باستخدام springboot swagger2
ما سبق هو طلب الحصول على رمز التحقق ، والما يلي هو التحقق من تسجيل الدخول ، نتيجة التحقق ناجحة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.