Ich habe einen Spring Authorization Server erstellt – Sie finden den Code auf Github https://github.com/costerutilo/UTILO-Authorization-Server
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.
Versuchen Sie es mit der Abruf-API:
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));
In der Javascript-Konsole des Browsers sehe ich eine CORS-Ausnahme
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
Die Serverkonsole gibt den Fehler aus:
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
Wenn ich dieselbe Anfrage in Postman versuche, erhalte ich JSON mit dem Token.
Ich weiß nicht, was mein Denkfehler ist oder was ich falsch mache.
您将需要为您的 Spring Security 过滤器链启用 CORS并提供
@Bean
例如此示例: p>注意:端口
4200
用于 Angular 开发环境,替换为您的 Vue 开发服务器端口。