Skip to content

Commit fe95111

Browse files
committed
GH-9: Add custom user properties and remove polymorph constructor
1 parent 774512c commit fe95111

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/fastapi_oauth2/middleware.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828

2929
class Auth(AuthCredentials):
30+
"""Extended auth credentials schema based on Starlette AuthCredentials."""
31+
3032
http: bool
3133
secret: str
3234
expires: int
@@ -69,23 +71,27 @@ def jwt_create(cls, token_data: dict) -> str:
6971

7072

7173
class User(BaseUser, dict):
72-
def __init__(self, seq: Optional[dict] = None, **kwargs) -> None:
73-
super().__init__(seq or {}, **kwargs)
74-
self._is_authenticated = seq is not None
75-
self._identity = self.get("identity", "")
76-
self._display_name = self.get("display_name", "")
74+
"""Extended user schema based on Starlette BaseUser."""
7775

7876
@property
7977
def is_authenticated(self) -> bool:
80-
return self._is_authenticated
78+
return bool(self)
8179

8280
@property
8381
def display_name(self) -> str:
84-
return self._display_name
82+
return self.get("display_name", "") # name
8583

8684
@property
8785
def identity(self) -> str:
88-
return self._identity
86+
return self.get("identity", "") # username
87+
88+
@property
89+
def picture(self) -> str:
90+
return self.get("picture", "") # image
91+
92+
@property
93+
def email(self) -> str:
94+
return self.get("email", "") # email
8995

9096

9197
class OAuth2Backend(AuthenticationBackend):

0 commit comments

Comments
 (0)