@@ -55,7 +55,20 @@ func Twitter(input tpmodels.ProviderInput) *tpmodels.TypeProvider {
5555 }
5656
5757 originalImplementation .ExchangeAuthCodeForOAuthTokens = func (redirectURIInfo tpmodels.TypeRedirectURIInfo , userContext supertokens.UserContext ) (tpmodels.TypeOAuthTokens , error ) {
58- basicAuthToken := base64 .StdEncoding .EncodeToString ([]byte (originalImplementation .Config .ClientID + ":" + originalImplementation .Config .ClientSecret ))
58+ clientId := originalImplementation .Config .ClientID
59+ redirectUri := redirectURIInfo .RedirectURIOnProviderDashboard
60+
61+ // We need to do this because we don't call the original implementation
62+ /* Transformation needed for dev keys BEGIN */
63+
64+ if isUsingDevelopmentClientId (clientId ) {
65+ clientId = getActualClientIdFromDevelopmentClientId (clientId )
66+ redirectUri = DevOauthRedirectUrl
67+ }
68+
69+ /* Transformation needed for dev keys END */
70+
71+ basicAuthToken := base64 .StdEncoding .EncodeToString ([]byte (clientId + ":" + originalImplementation .Config .ClientSecret ))
5972 twitterOauthParams := map [string ]interface {}{}
6073
6174 if originalImplementation .Config .TokenEndpointBodyParams != nil {
@@ -69,9 +82,9 @@ func Twitter(input tpmodels.ProviderInput) *tpmodels.TypeProvider {
6982 }
7083
7184 twitterOauthParams ["grant_type" ] = "authorization_code"
72- twitterOauthParams ["client_id" ] = originalImplementation . Config . ClientID
85+ twitterOauthParams ["client_id" ] = clientId
7386 twitterOauthParams ["code_verifier" ] = codeVerifier
74- twitterOauthParams ["redirect_uri" ] = redirectURIInfo . RedirectURIOnProviderDashboard
87+ twitterOauthParams ["redirect_uri" ] = redirectUri
7588 twitterOauthParams ["code" ] = redirectURIInfo .RedirectURIQueryParams ["code" ]
7689
7790 return doPostRequest (originalImplementation .Config .TokenEndpoint , twitterOauthParams , map [string ]interface {}{
0 commit comments