code: def account_setup(remote, token, resp):
      
      resource = get_resource(remote)
  
      with db.session.begin_nested():
          person_id = resource.get('PersonID', [None])
          external_id = resource.get('uidNumber', person_id)[0]
  
          # Set CERN person ID in extra_data.
          token.remote_account.extra_data = {
              'external_id': external_id,
          }
          groups = account_groups_and_extra_data(token.remote_account, resource)
          assert not isinstance(g.identity, AnonymousIdentity)
          extend_identity(g.identity, groups)
  
          user = token.remote_account.user
  
          # Create user <-> external id link.
          oauth_link_external_id(user, dict(id=external_id, method='cern'))
docs: Perform additional setup after user have been logged in.