Skip to content

Commit 98b6cfe

Browse files
Merge pull request #373 from supertokens/twitter-fixes
chore: Add dev credentials handling to twitter
2 parents 0260767 + a3b8603 commit 98b6cfe

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

recipe/thirdparty/providers/twitter.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)