40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package auth
|
|
|
|
import (
|
|
"strings"
|
|
|
|
authdomain "gateway/internal/model/auth/domain"
|
|
)
|
|
|
|
func oauthState(prefix, sessionID string) string {
|
|
return prefix + sessionID
|
|
}
|
|
|
|
func parseOAuthState(state, prefix string) (sessionID string, err error) {
|
|
state = strings.TrimSpace(state)
|
|
if !strings.HasPrefix(state, prefix) {
|
|
return "", errb.InputInvalidFormat("invalid oauth state")
|
|
}
|
|
sessionID = strings.TrimPrefix(state, prefix)
|
|
if sessionID == "" {
|
|
return "", errb.InputInvalidFormat("invalid oauth state")
|
|
}
|
|
return sessionID, nil
|
|
}
|
|
|
|
func registerOAuthState(sessionID string) string {
|
|
return oauthState(authdomain.OAuthStatePrefixRegister, sessionID)
|
|
}
|
|
|
|
func loginOAuthState(sessionID string) string {
|
|
return oauthState(authdomain.OAuthStatePrefixLogin, sessionID)
|
|
}
|
|
|
|
func parseRegisterOAuthState(state string) (string, error) {
|
|
return parseOAuthState(state, authdomain.OAuthStatePrefixRegister)
|
|
}
|
|
|
|
func parseLoginOAuthState(state string) (string, error) {
|
|
return parseOAuthState(state, authdomain.OAuthStatePrefixLogin)
|
|
}
|