3 baris kode di sini tidak berarti bahwa Anda benar -benar hanya perlu menulis 3 baris kode, tetapi berdasarkan layanan Spring Boot OAuth2 yang saya tulis. Anda hanya perlu memodifikasi 3 baris informasi konfigurasi basis data untuk mendapatkan layanan Spring Boot OAuth2.
Alamat proyek https://github.com/jeesun/oauthserver
OAuthServer
Perkenalan
OAuthServer adalah server OAuth mandiri lengkap berdasarkan Spring Boot OAuth2. Cukup buat tabel data yang relevan dan memodifikasi informasi koneksi database, dan Anda bisa mendapatkan server oAuth.
Database relasional yang didukung:
Fungsi yang diimplementasikan:
Proses penggunaan
1. Buat tabel
PostgreSQL
Harap jalankan SRC/Main/Resources/Schema-pg.sql untuk menyelesaikan pembuatan tabel data dan mengimpor data uji.
Mysql
Harap jalankan SRC/Main/Resources/Schema-Mysql.sql untuk menyelesaikan pembuatan tabel data dan impor data uji.
2. Ubah Informasi Koneksi Basis Data
Di Application.yml, informasi koneksi database dikonfigurasi. Di antara mereka, nama pengguna dan kata sandi item konfigurasi harus dienkripsi oleh Jasypt dan tidak dapat diisi secara langsung. Kunci enkripsi dikonfigurasi oleh jasypt.encryptor.password. Anda perlu menggunakan alat utiltests di direktori tes untuk mendapatkan string terenkripsi.
PostgreSQL# PostgreSQL Informasi Koneksi Driver-Class-Name: org.postgresql.driver URL: JDBC: PostgreSQL: //127.0.0.1: 5432/thymelte? UseUnicode = true & characterencoding = UTF-8 nama pengguna: htpbg9 forprup = hmpb9 Enc (abdq6lyospryfqhcqzemtxrozyjvjia4) mysql# mysql koneksi informasi driver-class-name: com.mysql.jdbc.driver url: jdbc: mysql: //127.0.0.1: 3306/test? Useunicode = fial/fial//127.0.0.1: 3306/test? Useunicode = tr, //127.0.0.0 Enc (yiyjvwtuldgn // yab3kbua ==) kata sandi: enc (9oaijkfggsdfahh3oxy63rhwq+amdmij)
3. Jalankan
Sekarang, semuanya sudah siap. Jalankan proyek. Ketika program dimulai dengan sukses, itu berarti bahwa Anda telah berhasil mengonfigurasinya.
4. Tes
Saya telah menambahkan data uji ke tabel saat membangun tabel. Nilai parameter permintaan berikut adalah semua data uji dan dapat ditemukan di tabel data. Silakan buka tabel data untuk memodifikasi nilai yang sesuai sesuai dengan kebutuhan Anda.
Dalam tabel tabel oauth_client_details, sudah ada data uji. Nilai -nilai kolom klien_id dan client_secret sesuai dengan nilai -nilai dari nama pengguna dan kata sandi Parameter Permintaan OAuth. Kolom Access_Token_validity dan kolom refresh_token_validity masing -masing mewakili periode validitas akses_token dan refresh_token, dalam hitungan detik. Data uji 7200 dan 5184000 masing -masing mewakili 2 jam dan 2 bulan (60 hari). Ini adalah pengaturan waktu validitas yang relatif masuk akal, yang dapat digunakan sebagai referensi.
Semua Token Terkait Antarmuka memerlukan otentikasi OAuth dasar.
1. Dapatkan akses_token sesuai dengan nama pengguna dan kata sandi
Posting http: // localhost: 8182/oAuth/token? Grant_type = Kata Sandi & Nama Pengguna = Jeesun & Kata Sandi = 1234567890c
Contoh Sukses:
{"Access_Token": "CA582CD1-BE6C-4A5A-82EC-10AF7A8E06EB", "Token_Type": "Bearer", "Refresh_Token": "C24A6143-97C8-4642-88B9B9B9B9B9B9B9B9B9B9102," "" "" "" "Lingkup": "Baca Write Trust"}Contoh kegagalan (nama pengguna atau kata sandi yang salah)
{"error": "invalid_grant", "error_description": "kredensial buruk"}2. Periksa access_token
Dapatkan http: // localhost: 8182/oauth/check_token? Token = ca582cd1-e6c-4a5a-82ec-10af7a8e06eb
Contoh yang berhasil
{"aud": ["oauth2-resource"], "exp": 1524507296, "user_name": "jeesun", "otoritas": ["role_admin", "role_user"], "client_id": "clientidpassword", "scope": ["baca", ",", ",", ",", ",", "", "," ",", "", "", "," ",", "", "," ",", "", "", "", "", "," ",", "", "", "," "," ",", "Baca", "," "Contoh Kegagalan (Access_Token kedaluwarsa)
{"error": "invalid_token", "error_description": "token tidak dikenali"}3. Dapatkan Access_Token baru menurut Refresh_Token
Posting http: // localhost: 8182/oAuth/token? Grant_type = Refresh_Token & Refresh_Token = C24A6143-97C8-4642-88B9-D5C5B902B487
Contoh yang berhasil
{"Access_Token": "690ECD7D-F2B7-4FAA-AC45-5B7A319478E8", "TOKEN_TYPE": "BEADER", "Refresh_Token": "C24A6143-97C8-4642-88B9-D5B919" "" "" "" " "Lingkup": "Baca Write Trust"}Panduan Latihan Aplikasi
Setelah aplikasi mendapatkan informasi token, perlu menyimpan informasi token dan waktu permintaan. Sebelum melewati Access_Token, Anda perlu memeriksa apakah Access_Token kedaluwarsa. Untuk mengurangi tekanan latar belakang, memeriksa apakah Access_Token kedaluwarsa harus dilakukan secara lokal di aplikasi. Dengan membandingkan nilai token keyexpires_in (tetap periode validitas), serta waktu permintaan catatan lokal, dan waktu saat ini, mudah untuk menentukan apakah akses_token telah kedaluwarsa. Jika kedaluwarsa, Anda perlu mendapatkan access_token baru melalui refresh_token. Karena periode validitas Access_Token hanya 2 jam, verifikasi ini diperlukan. Hal yang sama berlaku untuk refresh_token.
Meringkaskan
Di atas adalah 3 baris kode yang diperkenalkan oleh editor untuk dengan cepat mengimplementasikan layanan Spring Boot OAuth2. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!