Keselamatan Spring dan Pengesahan JWT · Pelajaran

Integrasi Log Masuk Sosial

Integrasikan penyedia log masuk sosial popular (contohnya, Google dan GitHub) ke dalam aplikasi anda menggunakan klien OAuth2 Spring Security.

Pelajaran 2 daripada 411 langkah

Integrasi Log Masuk Sosial ialah pelajaran Keselamatan Spring dan Pengesahan JWT percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Log Masuk Sosial: Akses Mudah

Selamat datang ke log masuk sosial! Pernahkah anda melihat butang seperti "Sign in with Google" atau "Login with GitHub"? Itulah log masuk sosial.

Log masuk sosial membolehkan pengguna log masuk ke aplikasi anda menggunakan akaun sedia ada mereka daripada penyedia identiti popular. Ini mengurangkan kesulitan kepada pengguna dan mereka tidak perlu mengingati kata laluan baharu!

Spring Security Memudahkannya

Mengintegrasikan log masuk sosial secara manual boleh menjadi rumit kerana melibatkan banyak pengalihan dan pertukaran token. Namun, jangan bimbang!

Spring Security menyediakan sokongan terbina dalam yang berkuasa untuk klien OAuth2. Ia mengendalikan sebahagian besar aliran yang rumit untuk anda, lalu memudahkan penambahan penyedia seperti Google, GitHub atau Facebook.

Aplikasi Anda sebagai Klien OAuth2

Dalam konteks log masuk sosial, aplikasi anda bertindak sebagai Klien OAuth2. Klien ini perlu didaftarkan dengan penyedia identiti sosial (iaitu Pelayan Kebenaran).

Proses pendaftaran ini memberikan aplikasi anda kelayakan unik: ID Klien dan Rahsia Klien.

Mendaftar dengan Google (Bahagian 1)

Mari gunakan Google sebagai contoh praktikal. Untuk mengaktifkan Log Masuk Google, anda perlu mendaftarkan aplikasi anda dengan Google Cloud Console terlebih dahulu.

  • Cipta projek baharu.
  • Pergi ke APIs & Services > OAuth consent screen untuk mengkonfigurasi maklumat yang akan dilihat pengguna.

Ini memberitahu Google tentang identiti aplikasi anda dan perkara yang ingin dilakukannya.

Mendaftar dengan Google (Bahagian 2)

Seterusnya, anda akan mencipta kelayakan ID klien OAuth. Pilih 'Web application' sebagai jenis aplikasi.

Langkah yang paling penting ialah menetapkan 'Authorized redirect URIs'. Di sinilah Google akan menghantar pengguna kembali selepas pengesahan berjaya.

  • Untuk pembangunan setempat, alamat ini biasanya http://localhost:8080/login/oauth2/code/google.
  • Anda akan memperoleh ID Klien dan Rahsia Klien – simpan kedua-duanya dengan selamat!

Konfigurasi Spring Boot

Dengan ID Klien dan Rahsia Google anda, kini anda boleh mengkonfigurasi application.properties (atau fail .yml) aplikasi Spring Boot anda.

Spring Security menggunakan konvensyen untuk menamakan sifat-sifat ini. Gantikan nilai pemegang tempat dengan kelayakan sebenar anda.

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

Konfigurasi Keselamatan Minimum

Untuk mengaktifkan log masuk sosial OAuth2, anda memerlukan konfigurasi Spring Security asas. Nilai lalai Spring Boot amat membantu dalam hal ini.

Dengan hanya memanggil .oauth2Login() pada objek HttpSecurity anda, Spring Security mengkonfigurasi penapis dan titik akhir yang diperlukan secara automatik untuk mengendalikan aliran OAuth2.

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

  @Bean
  public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
      .authorizeHttpRequests(authorize -> authorize
        .anyRequest().authenticated() // Require authentication for all requests
      )
      .oauth2Login(oauth2 -> oauth2
        // Spring Security provides a default login page with social login links
      );
    return http.build();
  }
}

Halaman Log Masuk Sosial

Setelah konfigurasi tersedia, Spring Security akan menjana halaman log masuk secara automatik di /login (jika tiada halaman log masuk tersuai ditetapkan).

Halaman ini akan mengandungi pautan untuk setiap penyedia sosial yang dikonfigurasi. Apabila pengguna mengkliknya, mereka akan dihalakan ke penyedia tersebut untuk pengesahan.

<p>Conceptual HTML for a login link:</p>
<code>&lt;a href="/oauth2/authorization/google"&gt;Login with Google&lt;/a&gt;</code>
<p>Spring Security handles the redirection to Google and processes the response.</p>

Mengakses Butiran Pengguna

Selepas log masuk sosial berjaya, Spring Security mengisi SecurityContext dengan butiran pengguna yang disahkan.

Anda boleh menyuntik objek OAuth2User ke dalam pengawal anda untuk mengakses maklumat seperti nama, e-mel atau atribut lain pengguna yang diberikan oleh penyedia identiti sosial.

import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

// This is a snippet of a Spring Boot controller.
// It needs a full Spring Boot application context to run.
@RestController
public class UserController {

  @GetMapping("/user-info")
  public String getUserInfo(@AuthenticationPrincipal OAuth2User oauth2User) {
    if (oauth2User != null) {
      String name = oauth2User.getAttribute("name");
      String email = oauth2User.getAttribute("email");
      return "Hello, " + name + "! Your email is " + email + ".";
    }
    return "User not authenticated via social login.";
  }
}

Kuiz Log Masuk Sosial

Anda telah mempelajari cara menyediakan log masuk sosial! Mari uji pemahaman anda tentang komponen terasnya.

Ulang Kaji Log Masuk Sosial

Tahniah! Anda telah mempelajari cara mengintegrasikan log masuk sosial ke dalam aplikasi Spring Boot menggunakan sokongan klien OAuth2 Spring Security.

  • Kita memahami manfaat log masuk sosial dan peranan Spring Security.
  • Kita menelusuri penyediaan aplikasi anda sebagai Klien OAuth2 dan pendaftarannya dengan penyedia seperti Google.
  • Anda melihat cara mengkonfigurasi application.properties dan mengaktifkan .oauth2Login() dalam rantaian keselamatan anda.
  • Akhir sekali, anda mempelajari cara mengakses butiran pengguna yang disahkan menggunakan objek OAuth2User.

Log masuk sosial meningkatkan pengalaman pengguna dengan ketara dan memudahkan pengesahan!

Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Integrasi Log Masuk Sosial” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, termasuk “Integrasi Log Masuk Sosial”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Integrasi Log Masuk Sosial”?

Integrasikan penyedia log masuk sosial popular (contohnya, Google dan GitHub) ke dalam aplikasi anda menggunakan klien OAuth2 Spring Security. Anda berlatih Keselamatan Spring dan Pengesahan JWT menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Keselamatan Spring dan Pengesahan JWT?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Keselamatan Spring dan Pengesahan JWT di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Integrasi Log Masuk Sosial” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Keselamatan Spring dan Pengesahan JWT ini?

Ya. Setiap pelajaran Keselamatan Spring dan Pengesahan JWT menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Persediaan Klien OAuth2
  2. Integrasi Log Masuk Sosial
  3. Pengendali Kejayaan OAuth2 Tersuai
  4. Mengakses Pengguna OAuth2 yang Disahkan
← Kembali ke Keselamatan Spring dan Pengesahan JWT