def METHOD_NAME(self, response):
    """
    Gets the user details from Special:OAuth/identify
    """
    key, secret = self.get_key_and_secret()
    access_token = response["access_token"]
    auth = OAuth1(
        key,
        client_secret=secret,
        resource_owner_key=access_token["oauth_token"],
        resource_owner_secret=access_token["oauth_token_secret"],
    )
    req_resp = requests.post(
        url=self.setting("MEDIAWIKI_URL"),
        params={"title": "Special:OAuth/identify"},
        auth=auth,
    )
    try:
        identity = jwt.decode(
            req_resp.content,
            secret,
            audience=key,
            algorithms=["HS256"],
            leeway=self.LEEWAY,
        )
    except jwt.InvalidTokenError as exception:
        raise AuthException(
            self,
            "An error occurred while trying to read json "
            + f"content: {exception}",
        )
    issuer = urlparse(identity["iss"]).netloc
    expected_domain = urlparse(self.setting("MEDIAWIKI_URL")).netloc
    if not issuer == expected_domain:
        raise AuthException(
            self,
            f"Unexpected issuer {issuer}, expected {expected_domain}",
        )
    now = time.time()
    issued_at = float(identity["iat"])
    if not now >= (issued_at - self.LEEWAY):
        raise AuthException(
            self, f"Identity issued {issued_at - now} seconds in the future"
        )
    authorization_header = force_unicode(req_resp.request.headers["Authorization"])
    request_nonce = re.search(r'oauth_nonce="(.*?)"', authorization_header).group(1)
    if identity["nonce"] != request_nonce:
        raise AuthException(
            self,
            "Replay attack detected: {} != {}".format(
                identity["nonce"], request_nonce
            ),
        )
    return {
        "username": identity["username"],
        "userID": identity["sub"],
        "email": identity.get("email"),
        "confirmed_email": identity.get("confirmed_email"),
        "editcount": identity.get("editcount"),
        "rights": identity.get("rights"),
        "groups": identity.get("groups"),
        "registered": identity.get("registered"),
        "blocked": identity.get("blocked"),
    }