Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Token_Generation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
harshavardhan.c
Token_Generation
Commits
66d497da
Commit
66d497da
authored
Nov 07, 2022
by
harshavardhan.c
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add new file
parent
db11a8be
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
98 additions
and
0 deletions
+98
-0
main.py
main.py
+98
-0
No files found.
main.py
0 → 100644
View file @
66d497da
import
argparse
import
sys
import
uuid
from
datetime
import
datetime
,
timedelta
from
datetime
import
timezone
import
redis
import
typer
from
typer
import
Typer
from
jwt_util
import
JWT
app
=
Typer
(
name
=
"Generating Token"
,
)
jwt
=
JWT
()
from
jwt_util
import
Secrets
ap
=
argparse
.
ArgumentParser
()
def
create_token
(
user_id
,
ip
,
token
,
age
=
Secrets
.
LOCK_OUT_TIME_MINS
):
"""
This method is to create a cookie
"""
try
:
uid
=
str
(
uuid
.
uuid4
())
.
replace
(
"-"
,
""
)
payload
=
{
"ip"
:
ip
,
"user_id"
:
user_id
,
"token"
:
token
,
"uid"
:
uid
,
"age"
:
age
}
exp
=
datetime
.
now
(
timezone
.
utc
)
+
timedelta
(
minutes
=
age
)
_extras
=
{
"iss"
:
Secrets
.
issuer
,
"exp"
:
exp
}
_payload
=
{
**
payload
,
**
_extras
}
new_token
=
jwt
.
encode
(
_payload
)
# Add session to redis
login_db
.
set
(
uid
,
new_token
)
login_db
.
expire
(
uid
,
timedelta
(
minutes
=
age
))
return
uid
except
Exception
as
e
:
print
(
e
)
raise
if
__name__
==
"__main__"
:
ap
.
add_argument
(
"--REDIS_URI"
,
"-rc"
,
required
=
False
,
default
=
None
,
help
=
"Redis URI for the token generation.."
,
)
ap
.
add_argument
(
"--TOKEN_AGE"
,
"-b"
,
required
=
False
,
default
=
None
,
help
=
"Token Age for the Token."
,
)
ap
.
add_argument
(
"--REDIS_DB"
,
"-db"
,
required
=
False
,
default
=
9
,
help
=
"Redis Db info.."
,
)
ap
.
add_argument
(
"--USER_ID"
,
"-u"
,
required
=
False
,
default
=
'user_099'
,
help
=
"User_id details for the login-token"
,
)
ap
.
add_argument
(
"--HOST"
,
"-ip"
,
required
=
False
,
default
=
'127.0.0.1'
,
help
=
"Ip details for the login-token"
,
)
arguments
=
vars
(
ap
.
parse_args
())
print
(
f
"{arguments['REDIS_URI']}:{arguments['TOKEN_AGE']}:{arguments['REDIS_DB']}"
)
REDIS_URI
=
arguments
[
'REDIS_URI'
]
TOKEN_AGE
=
arguments
[
'TOKEN_AGE'
]
REDIS_DB
=
arguments
[
'REDIS_DB'
]
USER_ID
=
arguments
[
'USER_ID'
]
ip_details
=
arguments
[
'HOST'
]
if
not
all
([
REDIS_URI
,
TOKEN_AGE
,
REDIS_DB
]):
sys
.
exit
()
login_db
=
redis
.
from_url
(
REDIS_URI
,
db
=
int
(
REDIS_DB
),
decode_responses
=
True
)
age_in_minutes
=
int
(
TOKEN_AGE
)
*
24
*
60
token_details
=
create_token
(
user_id
=
USER_ID
,
ip
=
ip_details
,
token
=
Secrets
.
token
,
age
=
age_in_minutes
)
typer
.
echo
(
typer
.
style
(
f
"Token Generated for {TOKEN_AGE} days is {token_details}"
,
fg
=
typer
.
colors
.
GREEN
))
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment