2016-02-22 56 views

回答

0

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(); 
相关问题