Spring Authorization Server 1.0.0: Javascript-Fehler beim Anfordern von /oauth2/token
P粉314915922
P粉314915922 2023-09-04 15:24:41
0
1
516
<p>Ich habe einen Spring Authorization Server erstellt – Sie finden den Code auf Github https://github.com/costerutilo/UTILO-Authorization-Server</p> <p>Ich kann das Token nicht über JavaScript lesen. Ich habe eine einfache Vue-Webanwendung erstellt, um den Client-Autorisierungscode abzurufen, aber ich kann das Token nicht abrufen. </p> <p>Versuchen Sie es mit der Abruf-API: </p> <pre class="brush:php;toolbar:false;">const url = 'http://127.0.0.1:9000/oauth2/token'; var credentials = btoa(import.meta.env.VITE_CLIENT_ID + ':' + 'secret'); var basicAuth = 'Basic ' + Anmeldeinformationen; var myHeaders = new Headers(); //myHeaders.append("Authorization", "Basic dXRpbG8tY2xpZW50OnNlY3JldA=="); myHeaders.append("Authorization", basicAuth); myHeaders.append("Content-Type", "application/x-www-form-urlencoded"); var urlencoded = new URLSearchParams(); urlencoded.append("grant_type", "authorization_code"); // urlencoded.append("code", "yyJTTI3JqNno1XlSW59qxX3CCytMm-ChoHnqVw3iSUGyT6ltT_tpPclQ8bdSyeApO4IWE442irBiRwntJJzae9BIntpC3_vshTgNhAfbsBlkwh3n50jkAxs hTqavqsy"); urlencoded.append("code", code); urlencoded.append("redirect_uri", "https://www.utilo.eu"); var requestOptions = { Methode: 'POST', Header: myHeaders, Körper: URL-codiert, Weiterleitung: 'Folgen' }; fetch(URL, requestOptions) .then(response => Response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error));</pre> <p>In der Javascript-Konsole des Browsers sehe ich eine CORS-Ausnahme</p> <pre class="brush:php;toolbar:false;">Zugriff zum Abrufen bei 'http://127.0.0.1:9000/oauth2/token' vom Ursprung 'http://127.0.0.1:9010' hat wurde durch CORS-Richtlinie blockiert: Antwort auf Preflight-Anfrage besteht die Zugriffskontrollprüfung nicht</pre> <p>Die Serverkonsole gibt den Fehler aus: </p> <pre class="brush:php;toolbar:false;">2023-02-27T09:35:53.786+01:00 TRACE 33212 --- [nio-9000-exec-3] o.s.s.w.a.ExceptionTranslationFilter: AnonymousAuthenticationToken wird gesendet [ Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=127.0.0.1, SessionId=null], Granted Authorities=[ROLE_ANONYMOUS]] zum Authentifizierungseinstiegspunkt, da der Zugriff verweigert wird org.springframework.security.access.AccessDeniedException: Zugriff verweigert</pre> <p>Wenn ich dieselbe Anfrage in Postman versuche, erhalte ich JSON mit dem Token.</p> <p>Ich weiß nicht, was mein Denkfehler ist oder was ich falsch mache. </p>
P粉314915922
P粉314915922

Antworte allen(1)
P粉792026467

您将需要为您的 Spring Security 过滤器链启用 CORS 并提供 @Bean 例如 此示例: 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;
    }

}

注意:端口 4200 用于 Angular 开发环境,替换为您的 Vue 开发服务器端口。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!