mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-07-17 00:09:53 +00:00
39 lines
937 B
Go
39 lines
937 B
Go
package oidc
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/ory/fosite"
|
|
)
|
|
|
|
type parHandler struct {
|
|
provider fosite.OAuth2Provider
|
|
}
|
|
|
|
func newPARHandler(provider fosite.OAuth2Provider) *parHandler {
|
|
return &parHandler{
|
|
provider: provider,
|
|
}
|
|
}
|
|
|
|
func (h *parHandler) pushedAuthorizationRequest(c *gin.Context) {
|
|
ctx := c.Request.Context()
|
|
|
|
ar, err := h.provider.NewPushedAuthorizeRequest(ctx, c.Request)
|
|
if err != nil {
|
|
slog.ErrorContext(ctx, "Failed to create pushed authorize request", "error", err)
|
|
h.provider.WritePushedAuthorizeError(ctx, c.Writer, ar, err)
|
|
return
|
|
}
|
|
|
|
response, err := h.provider.NewPushedAuthorizeResponse(ctx, ar, NewEmptySession())
|
|
if err != nil {
|
|
slog.ErrorContext(ctx, "Failed to create pushed authorize response", "error", err)
|
|
h.provider.WritePushedAuthorizeError(ctx, c.Writer, ar, err)
|
|
return
|
|
}
|
|
|
|
h.provider.WritePushedAuthorizeResponse(ctx, c.Writer, ar, response)
|
|
}
|