Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Deprecate the generate_short_term_login_token method in favor of an…
Browse files Browse the repository at this point in the history
… async `create_login_token` method in the Module API.

Signed-off-by: Quentin Gliech <quenting@element.io>
  • Loading branch information
sandhose committed Sep 19, 2022
1 parent 44be423 commit 0d8cd34
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog.d/13842.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Deprecate the `generate_short_term_login_token` method in favor of an async `create_login_token` method in the Module API.
38 changes: 38 additions & 0 deletions synapse/module_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
# limitations under the License.
import email.utils
import logging
import warnings
from typing import (
TYPE_CHECKING,
Any,
Expand Down Expand Up @@ -748,6 +749,36 @@ def record_user_external_id(
)
)

async def create_login_token(
self,
user_id: str,
duration_in_ms: int = (2 * 60 * 1000),
auth_provider_id: Optional[str] = None,
auth_provider_session_id: Optional[str] = None,
) -> str:
"""Create a login token suitable for m.login.token authentication
Added in Synapse v1.68.0.
Args:
user_id: gives the ID of the user that the token is for
duration_in_ms: the time that the token will be valid for
auth_provider_id: the ID of the SSO IdP that the user used to authenticate
to get this token, if any. This is encoded in the token so that
/login can report stats on number of successful logins by IdP.
auth_provider_session_id: The session ID got during login from the SSO IdP,
if any.
"""
return self._hs.get_macaroon_generator().generate_short_term_login_token(
user_id,
auth_provider_id or "",
auth_provider_session_id,
duration_in_ms,
)

def generate_short_term_login_token(
self,
user_id: str,
Expand All @@ -759,6 +790,8 @@ def generate_short_term_login_token(
Added in Synapse v1.9.0.
This is deprecated in favor of create_login_token.
Args:
user_id: gives the ID of the user that the token is for
Expand All @@ -768,6 +801,11 @@ def generate_short_term_login_token(
to get this token, if any. This is encoded in the token so that
/login can report stats on number of successful logins by IdP.
"""
warnings.warn(
"ModuleApi.generate_short_term_login_token() is deprecated "
"in favor of ModuleApi.create_login_token().",
DeprecationWarning,
)
return self._hs.get_macaroon_generator().generate_short_term_login_token(
user_id,
auth_provider_id,
Expand Down

0 comments on commit 0d8cd34

Please sign in to comment.