@@ -265,6 +265,8 @@ type DeviceAccessTokenRequest struct {
265265 oidc.DeviceAccessTokenRequest
266266}
267267
268+ // CallDeviceAccessTokenEndpointWithAuthFn code moved from the CallDeviceAccessTokenEndpoint function
269+ // but allows for the authFn function to be passed in.
268270func CallDeviceAccessTokenEndpointWithAuthFn (ctx context.Context , request * DeviceAccessTokenRequest , caller TokenEndpointCaller , authFn any ) (* oidc.AccessTokenResponse , error ) {
269271 ctx , span := Tracer .Start (ctx , "CallDeviceAccessTokenEndpoint" )
270272 defer span .End ()
@@ -281,6 +283,14 @@ func CallDeviceAccessTokenEndpointWithAuthFn(ctx context.Context, request *Devic
281283 return resp , nil
282284}
283285
286+ // CallDeviceAccessTokenEndpoint code moved to CallDeviceAccessTokenEndpointWithAuthFn
287+ // Deprecated: Use CallDeviceAccessTokenEndpointWithAuthFn instead.
288+ func CallDeviceAccessTokenEndpoint (ctx context.Context , request * DeviceAccessTokenRequest , caller TokenEndpointCaller ) (* oidc.AccessTokenResponse , error ) {
289+ return CallDeviceAccessTokenEndpointWithAuthFn (ctx , request , caller , nil )
290+ }
291+
292+ // PollDeviceAccessTokenEndpointWithAuthFn code moved from the PollDeviceAccessTokenEndpoint function
293+ // but allows for the authFn function to be passed in.
284294func PollDeviceAccessTokenEndpointWithAuthFn (ctx context.Context , interval time.Duration , request * DeviceAccessTokenRequest , caller TokenEndpointCaller , authFn any ) (* oidc.AccessTokenResponse , error ) {
285295 ctx , span := Tracer .Start (ctx , "PollDeviceAccessTokenEndpoint" )
286296 defer span .End ()
@@ -319,56 +329,8 @@ func PollDeviceAccessTokenEndpointWithAuthFn(ctx context.Context, interval time.
319329 }
320330}
321331
322- func CallDeviceAccessTokenEndpoint (ctx context.Context , request * DeviceAccessTokenRequest , caller TokenEndpointCaller ) (* oidc.AccessTokenResponse , error ) {
323- ctx , span := Tracer .Start (ctx , "CallDeviceAccessTokenEndpoint" )
324- defer span .End ()
325-
326- req , err := httphelper .FormRequest (ctx , caller .TokenEndpoint (), request , Encoder , nil )
327- if err != nil {
328- return nil , err
329- }
330-
331- resp := new (oidc.AccessTokenResponse )
332- if err := httphelper .HttpRequest (caller .HttpClient (), req , & resp ); err != nil {
333- return nil , err
334- }
335- return resp , nil
336- }
337-
332+ // PollDeviceAccessTokenEndpoint code moved to PollDeviceAccessTokenEndpointWithAuthFn
333+ // Deprecated: Use PollDeviceAccessTokenEndpointWithAuthFn instead.
338334func PollDeviceAccessTokenEndpoint (ctx context.Context , interval time.Duration , request * DeviceAccessTokenRequest , caller TokenEndpointCaller ) (* oidc.AccessTokenResponse , error ) {
339- ctx , span := Tracer .Start (ctx , "PollDeviceAccessTokenEndpoint" )
340- defer span .End ()
341-
342- for {
343- timer := time .After (interval )
344- select {
345- case <- ctx .Done ():
346- return nil , ctx .Err ()
347- case <- timer :
348- }
349-
350- ctx , cancel := context .WithTimeout (ctx , interval )
351- defer cancel ()
352-
353- resp , err := CallDeviceAccessTokenEndpoint (ctx , request , caller )
354- if err == nil {
355- return resp , nil
356- }
357- if errors .Is (err , context .DeadlineExceeded ) {
358- interval += 5 * time .Second
359- }
360- var target * oidc.Error
361- if ! errors .As (err , & target ) {
362- return nil , err
363- }
364- switch target .ErrorType {
365- case oidc .AuthorizationPending :
366- continue
367- case oidc .SlowDown :
368- interval += 5 * time .Second
369- continue
370- default :
371- return nil , err
372- }
373- }
335+ return PollDeviceAccessTokenEndpointWithAuthFn (ctx , interval , request , caller , nil )
374336}
0 commit comments