Unplanned
Last Updated: 29 Aug 2025 13:05 by ADMIN
Dominik
Created on: 11 Jul 2025 10:01
Category: Reporting
Type: Feature Request
1
Passing time limited AccessTokens to the ReportViewer

We'd like to have a settable property on the web designer and report viewer which takes a function which returns an access token.
This way a new access token can be requested by the designer/viewer when the current one expires.

This is usually used in the following way:

  1. Implement a function with signature "string GetAccessToken()"
  2. Set that function to the property AccessTokenProvider of the designer/viewer
  3. Designer/Viewer wants to make a request and fetches and caches the access token
  4. Designer/Viewer uses that access token until it hits a 401 upon which
    1. The Cached access token is cleared
    2. A new Access token is fetched from AccessTokenProvider and then cached
    3. Retry the request with the new access token
    4. Should the retry also fail return the failure

Should the above be to specific/inflexible:
Instead of caching the access token, call AccessTokenProvider for every fetch but also provide an additional parameter with the "reason" for the call, so the implementer of AccessTokenProvider can decide themselves when to return a cached AccessToken or generate a new one.


2 comments
ADMIN
Dimitar
Posted on: 29 Aug 2025 13:05

Hello Dominik and Steven,

Thank you for the feedback!

We have decided to approve the item, as the suggested changes seem valid.

The exact implementation may be subject to change in the future, but the general idea behind the request sounds clear, and we will try to provide you with a pleasant way to provide the access token to the viewer and designer.

Please feel free to share any other input that you may have.

Regards,
Dimitar
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

Steve
Posted on: 22 Aug 2025 19:16
Indeed. I was going to request that both the deigner and viewer at least accept a function to provide a token - which can be invoked when making each request. Then the hosting app can easily respsond to an expired token as required. The function could support something along the lines of either a nullish/falsy return value or an "e.cancel()" mechanism to cancel the request.