Read or generate the xsrf token in its raw form. The raw_xsrf_token is a tuple containing: * version: the version of the cookie from which this token was read, or None if we generated a new token in this request. * token: the raw token data; random (non-ascii) byt
(self)
| 1592 | return self._xsrf_token |
| 1593 | |
| 1594 | def _get_raw_xsrf_token(self) -> Tuple[Optional[int], bytes, float]: |
| 1595 | """Read or generate the xsrf token in its raw form. |
| 1596 | |
| 1597 | The raw_xsrf_token is a tuple containing: |
| 1598 | |
| 1599 | * version: the version of the cookie from which this token was read, |
| 1600 | or None if we generated a new token in this request. |
| 1601 | * token: the raw token data; random (non-ascii) bytes. |
| 1602 | * timestamp: the time this token was generated (will not be accurate |
| 1603 | for version 1 cookies) |
| 1604 | """ |
| 1605 | if not hasattr(self, "_raw_xsrf_token"): |
| 1606 | cookie_name = self.settings.get("xsrf_cookie_name", "_xsrf") |
| 1607 | cookie = self.get_cookie(cookie_name) |
| 1608 | if cookie: |
| 1609 | version, token, timestamp = self._decode_xsrf_token(cookie) |
| 1610 | else: |
| 1611 | version, token, timestamp = None, None, None |
| 1612 | if token is None: |
| 1613 | version = None |
| 1614 | token = os.urandom(16) |
| 1615 | timestamp = time.time() |
| 1616 | assert token is not None |
| 1617 | assert timestamp is not None |
| 1618 | self._raw_xsrf_token = (version, token, timestamp) |
| 1619 | return self._raw_xsrf_token |
| 1620 | |
| 1621 | def _decode_xsrf_token( |
| 1622 | self, cookie: str |
no test coverage detected