Spring Authorization Server 1.0.0: ralat javascript apabila meminta /oauth2/token
P粉314915922
P粉314915922 2023-09-04 15:24:41
0
1
436

Saya telah mencipta Pelayan Kebenaran Musim Bunga - anda boleh mencari kod di github https://github.com/costerutilo/UTILO-Authorization-Server

Saya tidak boleh membaca token melalui JavaScript. Saya mencipta aplikasi web Vue mudah untuk mendapatkan kod kebenaran pelanggan, tetapi saya tidak boleh mendapatkan token.

Cuba gunakan API pengambilan:

const url = 'http://127.0.0.1:9000/oauth2/token'; var kelayakan = btoa(import.meta.env.VITE_CLIENT_ID + ':' + 'rahsia'); var basicAuth = 'Asas' + bukti kelayakan; var myHeaders = new Headers(); //myHeaders.append("Kebenaran", "Asas dXRpbG8tY2xpZW50OnNlY3JldA=="); myHeaders.append("Kebenaran", basicAuth); myHeaders.append("Content-Type", "application/x-www-form-urlencoded"); var urlencoded = URLSearchParams baharu(); urlencoded.append("jenis_pemberian", "kod_kebenaran"); // urlencoded.append("code", "yyJTTI3JqNno1XlSW59qxX3CCytMm-ChoHnqVw3iSUGyT6ltT_tpPclQ8bdSyeApO4IWE442irBiRwntJJzae9BIntpCj3hnb hTqavqsy"); urlencoded.append("kod", kod); urlencoded.append("redirect_uri", "https://www.utilo.eu"); var requestOptions = { kaedah: 'POST', tajuk: myHeaders, badan: urlencoded, ubah hala: 'ikuti' }; fetch(url, requestOptions) .then(respon => response.text()) .then(hasil => console.log(hasil)) .catch(error => console.log('error', error));

Dalam konsol javascript penyemak imbas, saya melihat pengecualian CORS

Akses untuk diambil di 'http://127.0.0.1:9000/oauth2/token' daripada asal 'http://127.0.0.1:9010' mempunyai telah disekat oleh dasar CORS: Respons kepada permintaan prapenerbangan tidak lulus semakan kawalan akses 

Konsol pelayan memberikan ralat:

2023-02-27T09:35:53.786+01:00 TRACE 33212 --- [nio-9000-exec-3] o.s.s.w.a.ExceptionTranslationFilter : Menghantar AnonymousAuthentic Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=127.0.0.1, SessionId=null], Granted Authorities=[ROLE_ANONYMOUS]] ke titik masuk pengesahan pengesahan kerana akses dinyahdayakan org.springframework.security.access.AccessDeniedException: Akses Ditolak

Jika saya mencuba permintaan yang sama dalam Posmen, saya mendapat JSON dengan token.

Saya tidak tahu apakah kesilapan penaakulan saya atau kesalahan yang saya lakukan.

P粉314915922
P粉314915922

membalas semua (1)
P粉792026467

Anda memerlukanuntuk mendayakan CORSuntuk rantai penapis Spring Security anda@Beandan menyediakanseperticontoh ini p>:

@Configuration public class CorsConfig { @Bean public CorsConfigurationSource corsConfigurationSource() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.addAllowedHeader("*"); config.addAllowedMethod("*"); config.addAllowedOrigin("http://127.0.0.1:4200"); config.setAllowCredentials(true); source.registerCorsConfiguration("/**", config); return source; } }
Nota: 4200Port adalah untuk persekitaran pembangunan Sudut, gantikannya dengan port pelayan pembangunan Vue anda.
    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!