Rumah> Java> javaTutorial> teks badan

Pengesahan OAuth dalam Spring Boot: Panduan untuk Mengintegrasikan Log Masuk Google dan GitHub

王林
Lepaskan: 2024-08-31 18:31:17
asal
599 orang telah melayarinya

Tingkatkan Keselamatan dengan OAuth 2.0: Melaksanakan Log Masuk Sosial dalam Spring Boot

Dalam dunia pembangunan web moden, melindungi aplikasi anda dan membuat pengesahan selancar mungkin untuk pengguna adalah keutamaan. Di situlah OAuth 2.0 masuk—ia merupakan alat berkuasa yang bukan sahaja membantu melindungi API anda tetapi juga membenarkan pengguna log masuk dengan akaun sedia ada mereka daripada platform seperti Google dan GitHub. Ini memudahkan semua orang: pengguna tidak perlu mengingati kata laluan lain lagi dan pembangun mendapat cara yang boleh dipercayai untuk mengurus pengesahan.

Dalam blog ini, saya akan membawa anda langkah demi langkah melalui cara menyediakan OAuth 2.0 dalam aplikasi Spring Boot. Kami akan menyepadukan kedua-dua Google dan GitHub untuk pengesahan, jadi pengguna anda boleh memilih perkhidmatan yang mereka mahu gunakan untuk log masuk. Saya juga akan menunjukkan kepada anda cara untuk melindungi titik akhir API anda menggunakan JWT (JSON Web Token), memastikan bahawa hanya pengguna yang disahkan boleh mengakses sumber yang sepatutnya.

Sama ada anda sedang membina apl baharu atau menambahkan keselamatan pada apl sedia ada, panduan ini akan memberi anda alatan yang anda perlukan untuk memastikan aplikasi Spring Boot anda selamat dan mesra pengguna.

Lawati https://start.spring.io/

buat projek

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Muat turun zip dan ekstrak dan muatkan projek ke IDE anda.

Pergantungan "OAuth2 Client" dalam Spring Boot memudahkan penyepaduan pengesahan OAuth 2.0 dengan penyedia seperti Google dan GitHub. Ia mengendalikan keseluruhan aliran log masuk OAuth, termasuk mengubah hala pengguna ke halaman log masuk penyedia, mengurus token dan mendapatkan titik akhir API. Dengan menambahkan pergantungan ini, anda boleh mendayakan pengesahan selamat dan mesra pengguna dengan mudah dalam aplikasi Spring Boot anda.

Pergantungan "Spring Web" dalam Spring Boot adalah penting untuk membangunkan aplikasi web. Ia menyediakan ciri penting seperti penciptaan API RESTful, sokongan seni bina MVC dan keupayaan untuk menyampaikan paparan HTML. Dengan Spring Web, anda boleh mengendalikan permintaan dan respons HTTP dengan mudah, mengurus penghalaan dan menyepadukan dengan komponen Spring yang lain, menjadikannya bahagian asas dalam membina aplikasi web yang mantap.

Konfigurasi Aplikasi

Untuk menyediakan aplikasi Spring Boot anda untuk pengesahan OAuth 2.0 dengan Google dan GitHub, anda perlu mengkonfigurasi fail application.properties. Fail ini mengandungi tetapan penting untuk aplikasi anda, termasuk bukti kelayakan klien OAuth, tahap pengelogan dan konfigurasi JWT.

spring.application.name=oauth2-authentication-service server.port=8000 #for google spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET #for github spring.security.oauth2.client.registration.github.client-id=YOUR_GITHUB_CLIENT_ID spring.security.oauth2.client.registration.github.client-secret= YOUR_GITHUB_CLIENT_SECRET
Salin selepas log masuk

Konfigurasi Pelanggan OAuth:Gantikan YOUR_GOOGLE_CLIENT_ID, YOUR_GOOGLE_CLIENT_SECRET, YOUR_GITHUB_CLIENT_ID dan YOUR_GITHUB_CLIENT_SECRET dengan bukti kelayakan yang anda perolehi daripada Google dan Git anda.

Untuk mendaftarkan permohonan anda dengan Google dan GitHub untuk pengesahan OAuth 2.0, kami perlu pergi ke https://console.cloud.google.com

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

klik pada Perkhidmatan API

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Tauliah -> buat Bukti kelayakan -> ID pelanggan OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

ID pelanggan OAuth -> Cipta ID klien OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

pilih

Jenis aplikasiuntukAplikasi web

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

beri nama permohonan

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

tetapkan

URI halauan yang dibenarkandengan URL ini dan di sini aplikasi kami berjalan pada port 8000 jadi port aplikasi ialah 8000. kemudian klik pada cipta

http://localhost:8000/login/oauth2/code/google
Salin selepas log masuk

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

selepas itu pelanggan OAuth dibuat dan kami mendapat ID pelanggan dan rahsia Pelanggan.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

copy both and replace with the the properties of application.properties file

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET
Salin selepas log masuk

TheSecurityConfigclass configures security for a Spring Boot application using OAuth2. It defines a SecurityFilterChain bean, which sets up security rules. The authorizeHttpRequests method ensures that all incoming requests require authentication. The .oauth2Login(Customizer.withDefaults()) line enables OAuth2 login functionality with default settings. Finally, the securityFilterChain method returns the configured security filter chain by calling http.build(). This setup ensures that the application is secure and supports OAuth2 authentication for users.

Accessing Your Application via Chrome

When developing and testing your Spring Boot application, it's crucial to know how to interact with it through Postman. If your application is running locally on port 8000, you can access it using the following base URL:

http://localhost:8000
Salin selepas log masuk

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

we get the similar response like this

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

now we can access the end points.

GitHub Authentication

GitHub Authentication in Spring Boot allows users to log in using their GitHub accounts, streamlining the authentication process and enhancing security. By integrating GitHub as an OAuth 2.0 provider, your application can authenticate users through GitHub's trusted platform. This involves registering your application on GitHub to obtain a Client ID and Client Secret, which are then configured in your Spring Boot application. Users are redirected to GitHub for login, and upon successful authentication, they are redirected back to your application with an access token, allowing secure access to your protected resources. This integration is ideal for applications targeting developers and tech-savvy users.

create GitHub account and go to settings

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

in the left corner we get thedeveloper settings

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Navigate to OAuth Apps

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

click oncreate OAuth App

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

we get the interface like this

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

set ** Authorization callback URL ** according to your application port

http://localhost:8000/login/oauth2/code/github
Salin selepas log masuk

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

and setHomepage URL

http://localhost:8000
Salin selepas log masuk

after registering the Application we get theClient ID and Client Secret

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

now replace with the Application.properties file properties

spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx spring.security.oauth2.client.registration.github.client-secret=
Salin selepas log masuk

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Test the GitHub Login

Login with GitHub: When prompted, log in with your GitHub credentials.
Success Redirect: Upon successful authentication, you'll be redirected to the /home page of your application.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

私の GitHub リポジトリでユーザー認証サービスの完全なソース コードを探索できます。このプロジェクトでは、ユーザー登録、ログイン、認証に JWT を使用した安全なアクセスなどのさまざまな機能を紹介します。自由にチェックしたり、投稿したり、独自のプロジェクトの参考として使用したりしてください!

GitHub リポジトリ: https://github.com/ishrivasayush/oauth2-authentication-service

結論

Google と GitHub を認証プロバイダーとして使用して、Spring Boot で OAuth 2.0 を実装することは、アプリケーションのセキュリティと使いやすさを強化する強力な方法です。ユーザーが既存のアカウントでログインできるようにすることで、煩わしさが軽減され、よりスムーズなユーザー エクスペリエンスが提供されます。同時に、JWT で API エンドポイントを保護することで、認証されたユーザーのみが機密リソースにアクセスできるようになります。

このガイドでは、Google と GitHub での OAuth 認証情報の設定から、認証を処理してエンドポイントを保護するための Spring Boot アプリケーションの構成まで、すべてを説明しました。 OAuth 2.0 を初めて使用する場合でも、OAuth 2.0 をプロジェクトに統合しようとしている場合でも、これらの手順は安全でスケーラブルな認証システムを構築するのに役立ちます。

セキュリティは終わりのない旅ですが、適切なツールと実践方法を使用すれば、安全でユーザーフレンドリーなアプリケーションを構築できます。強固な基盤ができたので、プロバイダーを追加したり、ユーザー エクスペリエンスをカスタマイズしたり、JWT 構成をさらに詳しく調べたりすることができます。コーディングを楽しんでください!

Atas ialah kandungan terperinci Pengesahan OAuth dalam Spring Boot: Panduan untuk Mengintegrasikan Log Masuk Google dan GitHub. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!