Skip to content

Commit 4a68942

Browse files
authored
Merge pull request #168 from tecladocode/develop
Use string for identity in JWT
2 parents 1701703 + 0625b93 commit 4a68942

File tree

35 files changed

+56
-50
lines changed
  • docs/docs
    • 08_flask_jwt_extended
    • 09_flask_migrate
      • 02_add_flask_migrate_to_app
      • 03_initialize_database_flask_db_init
      • 04_change_models_generate_alembic_migration
    • 11_deploy_to_render/06_run_everything_docker_compose
    • 12_task_queues_emails
  • project
    • using-flask-restful/resources
    • using-flask-restx/resources
    • using-flask-smorest/resources

35 files changed

+56
-50
lines changed

docs/docs/08_flask_jwt_extended/07_login_users_rest_api/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ class UserLogin(MethodView):
2929
).first()
3030

3131
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
32-
access_token = create_access_token(identity=user.id)
32+
access_token = create_access_token(identity=str(user.id))
3333
return {"access_token": access_token}, 200
3434

3535
abort(401, message="Invalid credentials.")
3636
```
3737

38-
Here you can see the when we call `create_access_token(identity=user.id)` we pass in the user's `id`. This is what gets stored (among other things) inside the JWT, so when the client sends the JWT back on every request, we can tell who the JWT belongs to.
38+
Here you can see the when we call `create_access_token(identity=str(user.id))` we pass in the user's `id`. This is what gets stored (among other things) inside the JWT, so when the client sends the JWT back on every request, we can tell who the JWT belongs to.
39+
40+
**Update Nov 2024**: Before now, we used `identity=user.id`, but now we have to convert it to a string first.

docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def post(self, user_data):
4242
).first()
4343

4444
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
45-
access_token = create_access_token(identity=user.id)
45+
access_token = create_access_token(identity=str(user.id))
4646
return {"access_token": access_token}, 200
4747

4848
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def post(self, user_data):
3737
).first()
3838

3939
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
40-
access_token = create_access_token(identity=user.id)
40+
access_token = create_access_token(identity=str(user.id))
4141
return {"access_token": access_token}, 200
4242

4343
abort(401, message="Invalid credentials.")

docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,16 @@ class UserLogin(MethodView):
6464

6565
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
6666
# highlight-start
67-
access_token = create_access_token(identity=user.id, fresh=True)
67+
access_token = create_access_token(identity=str(user.id), fresh=True)
6868
refresh_token = create_refresh_token(user.id)
6969
return {"access_token": access_token, "refresh_token": refresh_token}, 200
7070
# highlight-end
7171

7272
abort(401, message="Invalid credentials.")
7373
```
7474

75+
**Update Nov 2024**: Before now, we used `identity=user.id`, but now we have to convert it to a string first.
76+
7577
## Writing the token refresh endpoint
7678

7779
When a user logs in, they will now have the access token and the refresh token.
@@ -91,6 +93,8 @@ class TokenRefresh(MethodView):
9193
return {"access_token": new_token}, 200
9294
```
9395

96+
**Note**: here we don't need to call `str(current_user)` because `get_jwt_identity()` returns what we previously stored, which is a string.
97+
9498
Note that above, we've told Flask-JWT-Extended that a refresh token is required with `@jwt_required(refresh=True)`. We'll do something similar for requiring fresh tokens in a second!
9599

96100
## Requiring a fresh token for certain endpoints

docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def post(self, user_data):
4444
).first()
4545

4646
if user and pbkdf2_sha256.verify(user_data["password"], user.password):
47-
access_token = create_access_token(identity=user.id, fresh=True)
47+
access_token = create_access_token(identity=str(user.id), fresh=True)
4848
refresh_token = create_refresh_token(user.id)
4949
return {"access_token": access_token, "refresh_token": refresh_token}, 200
5050

0 commit comments

Comments
 (0)