Skip to content

Commit ac39010

Browse files
Merge pull request #388 from supertokens/github-fix
fix: github userid conversion
2 parents 7632d2f + 1fac98e commit ac39010

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed

CHANGELOG.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,70 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [unreleased]
99

10+
## [0.17.0] - 2023-11-14
11+
12+
### Breaking change
13+
14+
- Fixes github user id conversion to be consistent with other SDKs.
15+
16+
### Migration
17+
18+
If you were using the SDK Versions >= `0.13.0` and < `0.17.0`, use the following override function for github:
19+
20+
```go
21+
{
22+
Config: tpmodels.ProviderConfig{
23+
ThirdPartyId: "github",
24+
// other config
25+
},
26+
Override: func(originalImplementation *tpmodels.TypeProvider) *tpmodels.TypeProvider {
27+
originalGetUserInfo := originalImplementation.GetUserInfo
28+
originalImplementation.GetUserInfo = func(oAuthTokens tpmodels.TypeOAuthTokens, userContext supertokens.UserContext) (tpmodels.TypeUserInfo, error) {
29+
userInfo, err := originalGetUserInfo(oAuthTokens, userContext)
30+
if err != nil {
31+
return userInfo, err
32+
}
33+
number, err := strconv.ParseFloat(userInfo.ThirdPartyUserId, 64)
34+
if err != nil {
35+
return userInfo, err
36+
}
37+
userInfo.ThirdPartyUserId = fmt.Sprint(number)
38+
return userInfo, nil
39+
}
40+
41+
return originalImplementation
42+
},
43+
},
44+
```
45+
46+
If you were using the SDK Versions < `0.13.0`, use the following override function for github:
47+
48+
```go
49+
{
50+
Config: tpmodels.ProviderConfig{
51+
ThirdPartyId: "github",
52+
// other config
53+
},
54+
Override: func(originalImplementation *tpmodels.TypeProvider) *tpmodels.TypeProvider {
55+
originalGetUserInfo := originalImplementation.GetUserInfo
56+
originalImplementation.GetUserInfo = func(oAuthTokens tpmodels.TypeOAuthTokens, userContext supertokens.UserContext) (tpmodels.TypeUserInfo, error) {
57+
userInfo, err := originalGetUserInfo(oAuthTokens, userContext)
58+
if err != nil {
59+
return userInfo, err
60+
}
61+
number, err := strconv.ParseFloat(userInfo.ThirdPartyUserId, 64)
62+
if err != nil {
63+
return userInfo, err
64+
}
65+
userInfo.ThirdPartyUserId = fmt.Sprintf("%f", number)
66+
return userInfo, nil
67+
}
68+
69+
return originalImplementation
70+
},
71+
},
72+
```
73+
1074
## [0.16.6] - 2023-11-3
1175

1276
- Added `NetworkInterceptor` to the `ConnectionInfo` config.

recipe/thirdparty/providers/github.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func getSupertokensUserInfoFromRawUserInfoResponseForGithub(rawUserInfoResponse
135135
}
136136

137137
result := tpmodels.TypeUserInfo{
138-
ThirdPartyUserId: fmt.Sprint(rawUserInfoResponse.FromUserInfoAPI["user"].(map[string]interface{})["id"]),
138+
ThirdPartyUserId: fmt.Sprint(int64(rawUserInfoResponse.FromUserInfoAPI["user"].(map[string]interface{})["id"].(float64))),
139139
}
140140

141141
emailsInfo := rawUserInfoResponse.FromUserInfoAPI["emails"].([]interface{})

supertokens/constants.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const (
2121
)
2222

2323
// VERSION current version of the lib
24-
const VERSION = "0.16.6"
24+
const VERSION = "0.17.0"
2525

2626
var (
2727
cdiSupported = []string{"3.0"}

0 commit comments

Comments
 (0)