Par défaut, AppAuth envoie un défi de code S256
PKCE sur les demandes auth. Si j'ai besoin d'interopérer avec un serveur qui ne supporte que la méthode de challenge de code plain
, comment puis-je configurer ma demande d'autorisation?Comment puis-je utiliser la méthode de contestation de code PKCE «simple» avec AppAuth?
0
A
Répondre
0
iOS: Vous pouvez remplacer les paramètres PKCE en utilisant le constructeur OIDAuthorizationRequest initWithConfiguration:clientId:scope:redirectURL:responseType:state:codeVerifier:codeChallenge:codeChallengeMethod:additionalParameters:
. Cela peut être utilisé pour envoyer une méthode PKCE personnalisée (la bibliothèque ne prend en charge que S256
).
// builds authentication request
NSString *codeVerifier = [OIDAuthorizationRequest generateCodeVerifier];
OIDAuthorizationRequest *request =
[[OIDAuthorizationRequest alloc] initWithConfiguration:configuration
clientId:kClientID
scope:@"openid profile"
redirectURL:redirectURI
responseType:OIDResponseTypeCode
state:[OIDAuthorizationRequest generateState]
codeVerifier:codeVerifier
codeChallenge:codeVerifier
codeChallengeMethod:@"plain"
additionalParameters:nil];
Android: Vous pouvez remplacer les paramètres de PKCe en ajoutant setCodeVerifier(String, String, String)
à votre constructeur. Cela peut être utilisé pour envoyer une méthode PKCE personnalisée (par défaut, la bibliothèque utilise S256
sur les clients prenant en charge la plate-forme SHA-256).
import net.openid.appauth.CodeVerifierUtil;
String codeVerifier = CodeVerifierUtil.generateRandomCodeVerifier();
AuthorizationRequest authRequest = new AuthorizationRequest.Builder(
serviceConfig,
CLIENT_ID,
AuthorizationRequest.RESPONSE_TYPE_CODE,
REDIRECT_URI)
.setScope(SCOPE)
.setCodeVerifier(codeVerifier, codeVerifier, "plain")
.build();