@@ -374,11 +374,12 @@ func RequestToken(
374374 opts ... RequestTokenOption ,
375375) (request Request , response TokenResponse , err error ) {
376376 var (
377- req * http.Request
378- resp * http.Response
379- params RequestTokenParams
380- endpoint string
381- body []byte
377+ req * http.Request
378+ resp * http.Response
379+ params RequestTokenParams
380+ redirectURL * url.URL
381+ endpoint string
382+ body []byte
382383 )
383384
384385 for _ , opt := range opts {
@@ -460,16 +461,19 @@ func RequestToken(
460461 return request , response , err
461462 }
462463
464+ req .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
465+
463466 if cconfig .AuthMethod == ClientSecretBasicAuthMethod {
464467 req .SetBasicAuth (cconfig .ClientID , cconfig .ClientSecret )
465468 }
466469
467- req .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
468- var redirectURL * url.URL
469- if redirectURL , err = url .Parse (cconfig .RedirectURL ); err != nil {
470- return request , response , err
470+ if cconfig .RedirectURL != "" {
471+ if redirectURL , err = url .Parse (cconfig .RedirectURL ); err != nil {
472+ return request , response , err
473+ }
474+
475+ req .Header .Add ("Origin" , fmt .Sprintf ("%s://%s" , redirectURL .Scheme , redirectURL .Host ))
471476 }
472- req .Header .Add ("Origin" , redirectURL .Scheme + "://" + redirectURL .Host )
473477
474478 if cconfig .DPoP {
475479 if err = DPoPSignRequest (cconfig .SigningKey , hc , req ); err != nil {
0 commit comments