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