fix-confirm

This commit is contained in:
tonyrewin 2022-10-05 19:52:17 +03:00
parent 21eb082aa3
commit 99a1d5a867
3 changed files with 7 additions and 17 deletions

View File

@ -2,7 +2,7 @@ from authlib.integrations.starlette_client import OAuth
from starlette.responses import RedirectResponse
from auth.identity import Identity
from auth.tokenstorage import TokenStorage
from settings import OAUTH_CLIENTS, BACKEND_URL, OAUTH_CALLBACK_URL
from settings import OAUTH_CLIENTS
oauth = OAuth()
@ -66,7 +66,7 @@ async def oauth_login(request):
provider = request.path_params["provider"]
request.session["provider"] = provider
client = oauth.create_client(provider)
redirect_uri = "%s/%s" % (BACKEND_URL, "oauth_authorize")
redirect_uri = "https://newapi.discours.io/oauth-authorize"
return await client.authorize_redirect(request, redirect_uri)
@ -84,6 +84,6 @@ async def oauth_authorize(request):
}
user = Identity.oauth(user_input)
session_token = await TokenStorage.create_session(user)
response = RedirectResponse(url=OAUTH_CALLBACK_URL)
response = RedirectResponse(url="https://new.discours.io/confirm")
response.set_cookie("token", session_token)
return response

View File

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

View File

@ -3,7 +3,6 @@ from datetime import datetime
from graphql.type import GraphQLResolveInfo
from transliterate import translit
from starlette.responses import RedirectResponse
from auth.tokenstorage import TokenStorage
from auth.authenticate import login_required
@ -19,7 +18,7 @@ from base.orm import local_session
from base.resolvers import mutation, query
from orm import User, Role
from resolvers.profile import get_user_subscriptions
from settings import SESSION_TOKEN_HEADER, CONFIRM_CALLBACK_URL
from settings import SESSION_TOKEN_HEADER
@mutation.field("refreshSession")
@ -62,15 +61,6 @@ async def confirm_email(_, _info, confirm_token):
return {"error": "email is not confirmed"}
async def confirm_email_handler(request):
token = request.path_params["token"] # one time
request.session["token"] = token
res = await confirm_email(None, token)
response = RedirectResponse(url=CONFIRM_CALLBACK_URL)
response.set_cookie("token", res["token"]) # session
return response
def create_user(user_dict):
user = User(**user_dict)
user.roles.append(Role.default_role)