confirm email url fix

This commit is contained in:
tonyrewin 2022-10-01 11:39:56 +03:00
parent 96c973b70f
commit 67b3a5d529
3 changed files with 12 additions and 4 deletions

View File

@ -11,7 +11,7 @@ async def send_auth_email(user, token):
Follow the <a href='%s'>link</link> to authorize Follow the <a href='%s'>link</link> to authorize
</body></html> </body></html>
""" """
url = "%s/confirm_email" % BACKEND_URL url = "%s/confirm-email" % BACKEND_URL
to = "%s <%s>" % (user.username, user.email) to = "%s <%s>" % (user.username, user.email)
url_with_token = "%s?token=%s" % (url, token) url_with_token = "%s?token=%s" % (url, token)
text = text % url_with_token text = text % url_with_token

View File

@ -13,6 +13,7 @@ from auth.authenticate import JWTAuthenticate
from auth.oauth import oauth_login, oauth_authorize from auth.oauth import oauth_login, oauth_authorize
from base.redis import redis from base.redis import redis
from base.resolvers import resolvers from base.resolvers import resolvers
from resolvers.auth import confirm_email_handler
from resolvers.zine import ShoutsCache from resolvers.zine import ShoutsCache
from services.main import storages_init from services.main import storages_init
from services.stat.reacted import ReactedStorage from services.stat.reacted import ReactedStorage
@ -54,7 +55,7 @@ async def shutdown():
routes = [ routes = [
Route("/oauth/{provider}", endpoint=oauth_login), Route("/oauth/{provider}", endpoint=oauth_login),
Route("/oauth_authorize", endpoint=oauth_authorize), Route("/oauth_authorize", endpoint=oauth_authorize),
# Route("/confirm_email", endpoint=), # should be called on client Route("/confirm-email", endpoint=confirm_email_handler), # should be called on client
] ]
app = Starlette( app = Starlette(

View File

@ -38,7 +38,7 @@ async def get_current_user(_, info):
@mutation.field("confirmEmail") @mutation.field("confirmEmail")
async def confirm_email(*_, confirm_token): async def confirm_email(_, confirm_token):
"""confirm owning email address""" """confirm owning email address"""
user_id = None user_id = None
try: try:
@ -54,7 +54,14 @@ async def confirm_email(*_, confirm_token):
raise InvalidToken(e.message) raise InvalidToken(e.message)
except Exception as e: except Exception as e:
print(e) # FIXME: debug only print(e) # FIXME: debug only
return {"error": "email not confirmed"} return {"error": "email is not confirmed"}
async def confirm_email_handler(request):
token = request.path_params["token"]
request.session["token"] = token
res = confirm_email(None, token)
return res
@mutation.field("registerUser") @mutation.field("registerUser")