authorizer/server/handlers/oauthLogin.go

30 lines
866 B
Go
Raw Normal View History

package handlers
import (
"net/http"
2021-07-23 16:27:44 +00:00
"github.com/authorizerdev/authorizer/server/enum"
"github.com/authorizerdev/authorizer/server/oauth"
"github.com/authorizerdev/authorizer/server/session"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
2021-07-23 08:55:32 +00:00
func OAuthLoginHandler(provider enum.OAuthProvider) gin.HandlerFunc {
uuid := uuid.New()
oauthStateString := uuid.String()
return func(c *gin.Context) {
if provider == enum.GoogleProvider {
session.SetToken(oauthStateString, enum.Google.String())
url := oauth.OAuthProvider.GoogleConfig.AuthCodeURL(oauthStateString)
c.Redirect(http.StatusTemporaryRedirect, url)
}
2021-07-17 23:18:42 +00:00
if provider == enum.GithubProvider {
session.SetToken(oauthStateString, enum.Github.String())
url := oauth.OAuthProvider.GithubConfig.AuthCodeURL(oauthStateString)
c.Redirect(http.StatusTemporaryRedirect, url)
}
}
}