17 lines
371 B
Go
17 lines
371 B
Go
|
|
package auth
|
||
|
|
|
||
|
|
import (
|
||
|
|
"crypto/rand"
|
||
|
|
"encoding/base64"
|
||
|
|
)
|
||
|
|
|
||
|
|
// GenerateState returns a cryptographically random, URL-safe state value
|
||
|
|
// for use as a CSRF token in the OIDC authorization flow.
|
||
|
|
func GenerateState() (string, error) {
|
||
|
|
b := make([]byte, 32)
|
||
|
|
if _, err := rand.Read(b); err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return base64.RawURLEncoding.EncodeToString(b), nil
|
||
|
|
}
|