Skip to content

Instantly share code, notes, and snippets.

@akkuman
Created January 5, 2024 05:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akkuman/982c767039d3136819106b85147e629a to your computer and use it in GitHub Desktop.
Save akkuman/982c767039d3136819106b85147e629a to your computer and use it in GitHub Desktop.
drf rest_framework_simplejwt 自定义加密密钥
import rest_framework_simplejwt.tokens
import rest_framework_simplejwt.settings
import rest_framework_simplejwt.backends
def generate_jwt_token(user, secret_key=''):
'''生成 jwt token'''
token: rest_framework_simplejwt.tokens.RefreshToken = rest_framework_simplejwt.tokens.RefreshToken.for_user(user)
token["role_id"] = str(user.role.pk)
token['username'] = user.email
token_backend = rest_framework_simplejwt.backends.TokenBackend(
rest_framework_simplejwt.settings.api_settings.ALGORITHM,
secret_key or rest_framework_simplejwt.settings.api_settings.SIGNING_KEY,
rest_framework_simplejwt.settings.api_settings.VERIFYING_KEY,
rest_framework_simplejwt.settings.api_settings.AUDIENCE,
rest_framework_simplejwt.settings.api_settings.ISSUER,
rest_framework_simplejwt.settings.api_settings.JWK_URL,
rest_framework_simplejwt.settings.api_settings.LEEWAY,
rest_framework_simplejwt.settings.api_settings.JSON_ENCODER,
)
return token_backend.encode(token.payload)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment