Qt World Summit: Register Today!

(Re)storing tokens from OAuth2

  • Good afternoon.
    Since Google removed C++ library from the Admin API I have been forced to write my own. The parts that I need at least.
    It works, user gets authorisation for the scopes required, I am able to poll the data, post changes to relevant APIs etc.

    Problem: each time user runs the program in order to get token one gets their browser window open and needs to authorise access. And then new tokens are issued - one for current access used in OAuth2 and the refresh token, to be used one the first one expires (there is a TTL expressed in seconds that comes with the first token). I can, of course, store those tokens and that I do. But when I set them back on start, user gets the whole authorisation through browser cycle again.

    Code to save tokens:

    void GSuiteWrapper::saveToken(const QVariantMap &tokens) {
        QSettings settings;

    To load (oauth2 is of type QOAuthAutorizationWorkflow)


    My understanding is that after setting the tokens program should be able to make a call to the API and even if current token expired the refresh one will be used to obtain new token?
    Also, I am not setting up TTL of the token upon load - can this be of issue?
    Google documentation is not very detailed on that or I can't read it properly.
    Can anyone advise me on this please?
    Many thanks in advance.

Log in to reply