mirror of
https://gitee.com/yadong.zhang/JustAuth.git
synced 2025-12-06 08:48:27 +08:00
🔥 Amazon PKCE 中的 code_verifier 基于 state 缓存
This commit is contained in:
parent
b01704ff78
commit
6859b8a949
@ -50,15 +50,16 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
||||
*/
|
||||
@Override
|
||||
public String authorize(String state) {
|
||||
String realState = getRealState(state);
|
||||
UrlBuilder builder = UrlBuilder.fromBaseUrl(source.authorize())
|
||||
.queryParam("client_id", config.getClientId())
|
||||
.queryParam("scope", this.getScopes(" ", true, AuthScopeUtils.getDefaultScopes(AuthAmazonScope.values())))
|
||||
.queryParam("redirect_uri", config.getRedirectUri())
|
||||
.queryParam("response_type", "code")
|
||||
.queryParam("state", getRealState(state));
|
||||
.queryParam("state", realState);
|
||||
|
||||
if (config.isPkce()) {
|
||||
String cacheKey = this.source.getName().concat(":code_verifier:").concat(config.getClientId());
|
||||
String cacheKey = this.source.getName().concat(":code_verifier:").concat(realState);
|
||||
String codeVerifier = PkceUtil.generateCodeVerifier();
|
||||
String codeChallengeMethod = "S256";
|
||||
String codeChallenge = PkceUtil.generateCodeChallenge(codeChallengeMethod, codeVerifier);
|
||||
@ -86,7 +87,7 @@ public class AuthAmazonRequest extends AuthDefaultRequest {
|
||||
form.put("client_secret", config.getClientSecret());
|
||||
|
||||
if (config.isPkce()) {
|
||||
String cacheKey = this.source.getName().concat(":code_verifier:").concat(config.getClientId());
|
||||
String cacheKey = this.source.getName().concat(":code_verifier:").concat(authCallback.getState());
|
||||
String codeVerifier = this.authStateCache.get(cacheKey);
|
||||
form.put("code_verifier", codeVerifier);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user