add
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
from http.cookies import SimpleCookie
|
||||
|
||||
import jwt
|
||||
from authlib.oauth2 import OAuth2Error
|
||||
from authlib.oauth2.rfc6749 import errors
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
@@ -32,22 +31,18 @@ def authorize():
|
||||
request=router.current_event,
|
||||
end_user={'id': user_id},
|
||||
)
|
||||
except jwt.exceptions.InvalidTokenError as err:
|
||||
logger.exception(err)
|
||||
raise BadRequestError(str(err))
|
||||
except OAuth2Error as err:
|
||||
logger.exception(err)
|
||||
return dict(err.get_body())
|
||||
|
||||
try:
|
||||
return server.create_authorization_response(
|
||||
request=router.current_event,
|
||||
grant_user={'id': user_id},
|
||||
grant=grant,
|
||||
)
|
||||
except jwt.exceptions.InvalidTokenError as err:
|
||||
logger.exception(err)
|
||||
raise BadRequestError(str(err))
|
||||
except errors.OAuth2Error as err:
|
||||
logger.exception(err)
|
||||
return {}
|
||||
return dict(err.get_body())
|
||||
|
||||
|
||||
def verify_session(session_id: str) -> str:
|
||||
|
||||
@@ -5,16 +5,16 @@ import type { Route } from './+types/authorize'
|
||||
export async function loader({ request, context }: Route.LoaderArgs) {
|
||||
const cookies = parse(request.headers.get('Cookie') || '')
|
||||
const url = new URL(request.url)
|
||||
const redirect = new URL('/', url.origin)
|
||||
const issuerUrl = new URL('/authorize', context.cloudflare.env.ISSUER_URL)
|
||||
issuerUrl.search = url.search
|
||||
redirect.search = url.search
|
||||
|
||||
if (!cookies.session_id) {
|
||||
url.pathname = '/'
|
||||
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: url.toString()
|
||||
Location: redirect.toString()
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -29,6 +29,15 @@ export async function loader({ request, context }: Route.LoaderArgs) {
|
||||
redirect: 'manual'
|
||||
})
|
||||
|
||||
if (!r.ok) {
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: redirect.toString()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return new Response(await r.text(), {
|
||||
status: r.status,
|
||||
headers: r.headers
|
||||
|
||||
Reference in New Issue
Block a user