dj-jwt-auth 1.9.0__py3-none-any.whl → 1.9.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dj-jwt-auth
3
- Version: 1.9.0
3
+ Version: 1.9.2
4
4
  Summary: A Django package for JSON Web Token validation and verification. Using PyJWT.
5
5
  Home-page: https://www.example.com/
6
6
  Author: Konstantin Seleznev
@@ -7,15 +7,15 @@ django_jwt/roles.py,sha256=SaHK3o8T8USS4ZhG4SrHPlZQV2lMb2t1UZHT6IQtBvA,143
7
7
  django_jwt/settings.py,sha256=pXQ8WUU4LGBe6PQxCLTLM_2_b1CCSgehqim3yJDqZdw,1922
8
8
  django_jwt/urls.py,sha256=ZhcnRcQ1MBRh-bS7fTa-Vkz8yuWUhv-G_uRXKLnKAs0,320
9
9
  django_jwt/user.py,sha256=v2oCoAThstFg5x5cOA9nSKlYWZzCEqhFbz63WGhE_NM,6382
10
- django_jwt/utils.py,sha256=uIFw1JMldE_blC7YkaZbY7rpcawP2E6zsdLyuZRwJoA,1645
11
- django_jwt/views.py,sha256=GzfMlVHbbVduJltWhEdEZU8_LyOFvlczxAakUh2KA7w,4626
10
+ django_jwt/utils.py,sha256=E_D_GxIVmKQYHzKTMEWPqR1zV4l0q40vPolxhcDGQdk,1641
11
+ django_jwt/views.py,sha256=qUpds6fHL9AjkA4xtwJivDTXqykOAFlwIjeNCibJZqc,4745
12
12
  django_jwt/templates/django-jwt-index.html,sha256=y8f0v2WbRAFxnIU799I_MZCVsjn1sbdh7bypjdWB0lA,1353
13
13
  django_jwt/templates/admin/login.html,sha256=Nihyu0IGvDDZVvQDITXozwlj6XCQ0B8gqlyHLqVNyJc,275
14
14
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  tests/models.py,sha256=jhoJcCEsx5B9AibmoLQLDD3cEsyYzYy6dMdYhRnBVFo,338
16
16
  tests/test.py,sha256=HEy5DsEYrPmtWSdeDhgdeV2tZTYlepaWt82VoTBrta8,11828
17
17
  tests/urls.py,sha256=D5FhDSVAudurkrpkCZZPnDvgXSgifwFVB3nAlYBg7uQ,212
18
- dj_jwt_auth-1.9.0.dist-info/METADATA,sha256=9wT1rkV7h9f5Xi7wYvqbWjuJwolLxF4pjIqef1kRBI4,4416
19
- dj_jwt_auth-1.9.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
20
- dj_jwt_auth-1.9.0.dist-info/top_level.txt,sha256=58O7TdK-yECZcbmPc52KNlBFpjIUlENuZubCxaSOxus,17
21
- dj_jwt_auth-1.9.0.dist-info/RECORD,,
18
+ dj_jwt_auth-1.9.2.dist-info/METADATA,sha256=nlrxWLsXZIbgRYjg1_gq-9FrA8hU23IW8kI2zZjyHNY,4416
19
+ dj_jwt_auth-1.9.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
20
+ dj_jwt_auth-1.9.2.dist-info/top_level.txt,sha256=58O7TdK-yECZcbmPc52KNlBFpjIUlENuZubCxaSOxus,17
21
+ dj_jwt_auth-1.9.2.dist-info/RECORD,,
django_jwt/utils.py CHANGED
@@ -19,11 +19,11 @@ def get_alg(token: str) -> str:
19
19
  return header["alg"]
20
20
 
21
21
 
22
- def get_access_token(code: str, redirect_uri: str, pkce_secret: str) -> str:
22
+ def get_access_token(code: str, redirect_uri: str, pkce_secret: str, client_id: str) -> str:
23
23
  token_endpoint = config.admin().get("token_endpoint")
24
24
  data = {
25
25
  "grant_type": "authorization_code",
26
- "client_id": settings.OIDC_ADMIN_CLIENT_ID,
26
+ "client_id": client_id,
27
27
  "code": code,
28
28
  "redirect_uri": redirect_uri,
29
29
  "code_verifier": pkce_secret,
django_jwt/views.py CHANGED
@@ -43,13 +43,14 @@ class InitiateView(View):
43
43
  callback_view_name = "receive_redirect_view"
44
44
  client_id = None
45
45
  scope = "openid"
46
+ params = {}
46
47
 
47
48
  def get(self, request):
48
49
  pkce_secret = PKCESecret()
49
50
  redirect_uri = request.build_absolute_uri(reverse(self.callback_view_name))
50
51
  authorization_endpoint = config.admin().get("authorization_endpoint")
51
52
  state = base64.urlsafe_b64encode(get_random_string().encode()).decode()
52
- params = {
53
+ self.params = {
53
54
  "client_id": self.client_id,
54
55
  "redirect_uri": redirect_uri,
55
56
  "response_type": "code",
@@ -61,12 +62,13 @@ class InitiateView(View):
61
62
  "nonce": get_random_string(),
62
63
  }
63
64
  cache.set(state, str(pkce_secret), timeout=600)
64
- log.info(f"OIDC Initiate: {authorization_endpoint}?{urlencode(params)}")
65
- return redirect(f"{authorization_endpoint}?{urlencode(params)}")
65
+ log.info(f"OIDC Initiate: {authorization_endpoint}?{urlencode(self.params)}")
66
+ return redirect(f"{authorization_endpoint}?{urlencode(self.params)}")
66
67
 
67
68
 
68
69
  class CallbackView(View):
69
70
  callback_view_name = "receive_redirect_view"
71
+ client_id = None
70
72
  user = None
71
73
  payload = None
72
74
 
@@ -82,7 +84,7 @@ class CallbackView(View):
82
84
 
83
85
  redirect_uri = request.build_absolute_uri(self.callback_view_name)
84
86
  if state := cache.get(state):
85
- token = get_access_token(code, redirect_uri, state)
87
+ token = get_access_token(code, redirect_uri, state, self.client_id)
86
88
  self.payload = oidc_handler.decode_token(token)
87
89
  self.user = UserHandler(self.payload, request, token).get_user()
88
90
  return super().dispatch(request, *args, **kwargs)
@@ -95,6 +97,8 @@ class StartOIDCAuthView(InitiateView):
95
97
 
96
98
 
97
99
  class ReceiveRedirectView(CallbackView):
100
+ client_id = jwt_settings.OIDC_ADMIN_CLIENT_ID
101
+
98
102
  def dispatch(self, request, *args, **kwargs):
99
103
  try:
100
104
  return super().dispatch(request, *args, **kwargs)