(c *gin.Context, success UserSuccessCallback, fail UserFailCallback)
| 289 | } |
| 290 | |
| 291 | func twitterAuthCallback(c *gin.Context, success UserSuccessCallback, fail UserFailCallback) http.Handler { |
| 292 | return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { |
| 293 | userInfo, err := twitter.UserFromContext(r.Context()) |
| 294 | if err != nil { |
| 295 | err = errors.Wrapf(err, "get twitter user info failed") |
| 296 | fail(err) |
| 297 | return |
| 298 | } |
| 299 | |
| 300 | if success != nil { |
| 301 | var extraInfo gin.H |
| 302 | |
| 303 | userInfoJSON, err := json.Marshal(userInfo) |
| 304 | if err != nil { |
| 305 | err = errors.Wrapf(err, "marshal user info failed") |
| 306 | fail(err) |
| 307 | return |
| 308 | } |
| 309 | |
| 310 | err = json.Unmarshal(userInfoJSON, &extraInfo) |
| 311 | if err != nil { |
| 312 | err = errors.Wrapf(err, "unmarshal extra user info failed") |
| 313 | fail(err) |
| 314 | return |
| 315 | } |
| 316 | |
| 317 | success(&UserInfo{ |
| 318 | UID: userInfo.IDStr, |
| 319 | Name: userInfo.Name, |
| 320 | Email: userInfo.Email, |
| 321 | Avatar: userInfo.ProfileImageURLHttps, |
| 322 | Extra: extraInfo, |
| 323 | }) |
| 324 | } |
| 325 | }) |
| 326 | } |
| 327 | |
| 328 | func githubAuthCallback(c *gin.Context, success UserSuccessCallback, fail UserFailCallback, cfg *oauth2.Config) http.Handler { |
| 329 | return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { |
no test coverage detected