mirror of
https://github.com/lukaszraczylo/traefikoidc.git
synced 2026-10-19 04:47:48 +00:00
Optimise: Build auth URL.
This commit is contained in:
@@ -327,20 +327,27 @@ func (t *TraefikOidc) verifyToken(token string) error {
|
|||||||
return t.tokenVerifier.VerifyToken(token)
|
return t.tokenVerifier.VerifyToken(token)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var authURLBuilder strings.Builder
|
||||||
|
|
||||||
func (t *TraefikOidc) buildAuthURL(redirectURL, state, nonce string) string {
|
func (t *TraefikOidc) buildAuthURL(redirectURL, state, nonce string) string {
|
||||||
params := url.Values{
|
authURLBuilder.Reset()
|
||||||
"client_id": {t.clientID},
|
authURLBuilder.Grow(256) // Pre-allocate some space
|
||||||
"response_type": {"code"},
|
authURLBuilder.WriteString(t.authURL)
|
||||||
"redirect_uri": {redirectURL},
|
authURLBuilder.WriteString("?client_id=")
|
||||||
"state": {state},
|
authURLBuilder.WriteString(t.clientID)
|
||||||
"nonce": {nonce},
|
authURLBuilder.WriteString("&response_type=code&redirect_uri=")
|
||||||
}
|
authURLBuilder.WriteString(url.QueryEscape(redirectURL))
|
||||||
|
authURLBuilder.WriteString("&state=")
|
||||||
|
authURLBuilder.WriteString(state)
|
||||||
|
authURLBuilder.WriteString("&nonce=")
|
||||||
|
authURLBuilder.WriteString(nonce)
|
||||||
|
|
||||||
if len(t.scopes) > 0 {
|
if len(t.scopes) > 0 {
|
||||||
params.Set("scope", strings.Join(t.scopes, " "))
|
authURLBuilder.WriteString("&scope=")
|
||||||
|
authURLBuilder.WriteString(strings.Join(t.scopes, "+"))
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("%s?%s", t.authURL, params.Encode())
|
return authURLBuilder.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TraefikOidc) startTokenCleanup() {
|
func (t *TraefikOidc) startTokenCleanup() {
|
||||||
|
|||||||
Reference in New Issue
Block a user