serviceSelector.go 824 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. }
  14. return []string{}
  15. }
  16. func getEndpoint(coredb *db.Database) oauth2.Endpoint {
  17. idp := readSingleConfig("idp", coredb)
  18. if idp == "Google" {
  19. return googleEndpoint()
  20. } else if idp == "Github" {
  21. return githubEndpoint()
  22. }
  23. return oauth2.Endpoint{}
  24. }
  25. func getUserInfo(accessToken string, coredb *db.Database) (string, error) {
  26. idp := readSingleConfig("idp", coredb)
  27. if idp == "Google" {
  28. return googleUserInfo(accessToken)
  29. } else if idp == "Github" {
  30. return githubUserInfo(accessToken)
  31. }
  32. return "", errors.New("Unauthorized")
  33. }