serviceSelector.go 1015 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package oauth2
  2. import (
  3. "errors"
  4. "golang.org/x/oauth2"
  5. db "imuslab.com/arozos/mod/database"
  6. )
  7. func getScope(coredb *db.Database) []string {
  8. idp := readSingleConfig("idp", coredb)
  9. if idp == "Google" {
  10. return googleScope()
  11. } else if idp == "Github" {
  12. return githubScope()
  13. } else if idp == "Microsoft" {
  14. return microsoftScope()
  15. }
  16. return []string{}
  17. }
  18. func getEndpoint(coredb *db.Database) oauth2.Endpoint {
  19. idp := readSingleConfig("idp", coredb)
  20. if idp == "Google" {
  21. return googleEndpoint()
  22. } else if idp == "Github" {
  23. return githubEndpoint()
  24. } else if idp == "Microsoft" {
  25. return microsoftEndpoint()
  26. }
  27. return oauth2.Endpoint{}
  28. }
  29. func getUserInfo(accessToken string, coredb *db.Database) (string, error) {
  30. idp := readSingleConfig("idp", coredb)
  31. if idp == "Google" {
  32. return googleUserInfo(accessToken)
  33. } else if idp == "Github" {
  34. return githubUserInfo(accessToken)
  35. } else if idp == "Microsoft" {
  36. return microsoftUserInfo(accessToken)
  37. }
  38. return "", errors.New("Unauthorized")
  39. }