لا تعني الأسطر الثلاثة من الكود هنا أنك تحتاج حقًا إلى كتابة 3 أسطر من التعليمات البرمجية ، ولكن استنادًا إلى خدمة SPRING BOOT OAUTH2 التي كتبتها. تحتاج فقط إلى تعديل 3 أسطر من معلومات تكوين قاعدة البيانات للحصول على خدمة SPRING BOOT OAUTH2.
عنوان المشروع https://github.com/jeesun/oauthserver
Oauthserver
مقدمة
Oauthserver هو خادم Oauth مستقل كامل يعتمد على SPRING BOOT OAUTH2. ما عليك سوى إنشاء جداول البيانات ذات الصلة وتعديل معلومات اتصال قاعدة البيانات ، ويمكنك الحصول على خادم OAUTH.
قواعد البيانات العلائقية المدعومة:
الوظائف المنفذة:
عملية الاستخدام
1. إنشاء جدول
postgresql
يرجى تنفيذ SRC/Main/Resources/Schema-PG.SQL لإكمال إنشاء جدول البيانات واستيراد بيانات الاختبار.
MySQL
يرجى تنفيذ SRC/Main/Resources/Schema-MySQL.SQL لإكمال إنشاء جدول البيانات واستيراد بيانات الاختبار.
2. تعديل معلومات اتصال قاعدة البيانات
في application.yml ، يتم تكوين معلومات اتصال قاعدة البيانات. من بينها ، يجب تشفير اسم المستخدم وكلمة المرور عناصر التكوين بواسطة Jasypt ولا يمكن ملؤها مباشرة. يتم تكوين مفتاح التشفير بواسطة jasypt.encryptor.password. تحتاج إلى استخدام أداة youldests في دليل الاختبار للحصول على السلسلة المشفرة.
postgresql# postgresql معلومات الاتصال معلومات السائق-اسم! ENC (ABDQ6LOUSPRYFQHCQZEMTXROZROZEJVJIA4) MYSQL# MYSQL معلومات السائق الفئة: com.mysql.jdbc.driver url: jdbc: mysql: //127.0.0.1: 3306/test؟ use uSunicode = ENC (yiyjvwtuldgn // yab3kbua ==) كلمة المرور: enc (9OaiJKfggSdfahh3oxy63rhwq+amdmij)
3. الجري
الآن ، كل شيء جاهز. تشغيل المشروع. عندما يبدأ البرنامج بنجاح ، فهذا يعني أنك قمت بتكوينه بنجاح.
4. اختبار
لقد أضفت بيانات الاختبار إلى الجدول عند إنشاء الجدول. قيم معلمات الطلب التالية كلها بيانات اختبار ويمكن العثور عليها في جدول البيانات. يرجى الانتقال إلى جدول البيانات لتعديل القيمة المقابلة وفقًا لمتطلباتك.
في جدول الجدول OAUTH_CLIENT_DETAILS ، هناك بالفعل بيانات اختبار. تتوافق قيم الأعمدة Client_id و Client_Secret مع قيم معلمات طلب طلب OAUTH الأساسية على التوالي. تمثل الأعمدة Access_Token_Validity وعمود refresh_token_validity فترة صحة Access_token و refresh_token على التوالي ، في ثوان. تمثل بيانات الاختبار 7200 و 5184000 ساعتين وشهرين (60 يومًا) على التوالي. هذا إعداد معقول نسبيًا لوقت الصلاحية ، والذي يمكن استخدامه كمرجع.
تتطلب جميع الواجهات المميزة ذات الصلة مصادقة OAuth الأساسية.
1. الحصول على Access_Token وفقًا لاسم المستخدم وكلمة المرور
post http: // localhost: 8182/oauth/token؟ grant_type = password & username = jeesun & password = 1234567890c
مثال ناجح:
{"Access_Token": "CA582CD1-BE6C-4A5A-82EC-10AF7A8E06EB" ، "Token_Type": "Bearer" ، "Refresh_token": "C24A6143-97C8-4642-88B9-D5C5B902B487" ، ". "النطاق": "اقرأ كتابة الثقة"}مثال الفشل (اسم مستخدم غير صحيح أو كلمة مرور)
{"خطأ": "invalid_grant" ، "error_description": "بيانات الاعتماد السيئة"}2. تحقق من Access_Token
احصل على http: // localhost: 8182/oauth/check_token؟ token = ca582cd1-be6c-4a5a-82ec-10af7a8e06eb
مثال ناجح
{"Aud": ["Oauth2-resource"] ، "exp": 1524507296 ، "user_name":مثال الفشل (Access_Token انتهت صلاحية)
{"خطأ": "invalid_token" ، "error_description": "لم يتم التعرف على الرمز المميز"}3. الحصول على Access_Token جديد وفقًا لـ Refresh_token
post http: // localhost: 8182/oauth/token؟ grant_type = refresh_token & refresh_token = c24a6143-97c8-4642-88b9-d5c5b902b487
مثال ناجح
{"Access_Token": "690ECD7D-F2B7-4FAA-AC45-5B7A319478E8" ، "Token_Type": "Bearer" ، "Refresh_Token": "C24A6143-97C8-4642-88B9-D5C5B902" ، " "النطاق": "اقرأ كتابة الثقة"}دليل ممارسة التطبيق
بعد حصول التطبيق على معلومات الرمز المميز ، يحتاج إلى حفظ معلومات الرمز المميز ووقت الطلب. قبل تمرير Access_Token ، تحتاج إلى التحقق مما إذا كان Access_token ينتهي. لتقليل ضغط الخلفية ، يجب التحقق مما إذا كان يجب انتهاء صلاحية Access_Token محليًا في التطبيق. من خلال مقارنة قيمة keyexpires_in من الرمز المميز (تظل فترة صلاحية) ، وكذلك وقت طلب السجل المحلي ، والوقت الحالي ، من السهل تحديد ما إذا كان Access_Token قد انتهت. إذا انتهت صلاحيتها ، فأنت بحاجة إلى الحصول على Access_Token جديد من خلال Refresh_token. نظرًا لأن فترة صحة Access_Token هي ساعتين فقط ، فإن هذا التحقق ضروري. الشيء نفسه ينطبق على refresh_token.
لخص
ما سبق هو 3 أسطر من التعليمات البرمجية التي أدخلها المحرر لتنفيذ خدمة SPRING BOOT OAUTH2 بسرعة. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!