如何将 "plain" PKCE 代码质询方法与 AppAuth 一起使用?
How can I use the "plain" PKCE code challenge method with AppAuth?
默认情况下,AppAuth sends a S256
PKCE 对身份验证请求进行代码质询。如果我需要与只支持plain
密码挑战方式的服务器进行互操作,我该如何配置我的授权请求?
iOS:您可以使用 OIDAuthorizationRequest initWithConfiguration:clientId:scope:redirectURL:responseType:state:codeVerifier:codeChallenge:codeChallengeMethod:additionalParameters:
构造函数覆盖 PKCE 参数。这可用于发送自定义 PKCE 方法(该库仅支持 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:您可以通过将 setCodeVerifier(String, String, String)
添加到构建器来覆盖 PKCE 参数。这可用于发送自定义 PKCE 方法(默认情况下,库在具有 SHA-256 平台支持的客户端上使用 S256
)。
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();
默认情况下,AppAuth sends a S256
PKCE 对身份验证请求进行代码质询。如果我需要与只支持plain
密码挑战方式的服务器进行互操作,我该如何配置我的授权请求?
iOS:您可以使用 OIDAuthorizationRequest initWithConfiguration:clientId:scope:redirectURL:responseType:state:codeVerifier:codeChallenge:codeChallengeMethod:additionalParameters:
构造函数覆盖 PKCE 参数。这可用于发送自定义 PKCE 方法(该库仅支持 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:您可以通过将 setCodeVerifier(String, String, String)
添加到构建器来覆盖 PKCE 参数。这可用于发送自定义 PKCE 方法(默认情况下,库在具有 SHA-256 平台支持的客户端上使用 S256
)。
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();