37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from oauthlib.oauth2.rfc8628.endpoints.device_authorization import (
|
|
DeviceAuthorizationEndpoint,
|
|
)
|
|
|
|
from typing import Callable, Optional
|
|
from oauthlib.openid.connect.core.request_validator import RequestValidator
|
|
|
|
|
|
class DeviceApplicationServer(DeviceAuthorizationEndpoint):
|
|
"""An all-in-one endpoint featuring Authorization code grant and Bearer tokens."""
|
|
|
|
def __init__(
|
|
self,
|
|
request_validator: RequestValidator,
|
|
verification_uri: str,
|
|
interval: int = 5,
|
|
verification_uri_complete: Optional[str] = None, # noqa: FA100
|
|
user_code_generator: Callable[[None], str] = None,
|
|
**kwargs,
|
|
):
|
|
"""Construct a new web application server.
|
|
|
|
:param request_validator: An implementation of
|
|
oauthlib.oauth2.rfc8626.RequestValidator.
|
|
:param interval: How long the device needs to wait before polling the server
|
|
:param verification_uri: the verification_uri to be send back.
|
|
:param user_code_generator: a callable that allows the user code to be configured.
|
|
"""
|
|
DeviceAuthorizationEndpoint.__init__(
|
|
self,
|
|
request_validator,
|
|
interval=interval,
|
|
verification_uri=verification_uri,
|
|
user_code_generator=user_code_generator,
|
|
verification_uri_complete=verification_uri_complete,
|
|
)
|