feat: logout url redirecting to root
and removing the cookie. this is mud and stick technologies
This commit is contained in:
parent
dd5d255742
commit
6061db04b2
|
@ -522,6 +522,30 @@ video {
|
||||||
--tw-backdrop-sepia: ;
|
--tw-backdrop-sepia: ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.absolute {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.relative {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.end-2 {
|
||||||
|
inset-inline-end: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-2 {
|
||||||
|
top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.end-4 {
|
||||||
|
inset-inline-end: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-4 {
|
||||||
|
top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.flex {
|
.flex {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
@ -632,6 +656,15 @@ video {
|
||||||
color: rgb(37 99 235 / var(--tw-text-opacity));
|
color: rgb(37 99 235 / var(--tw-text-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-blue-800 {
|
||||||
|
--tw-text-opacity: 1;
|
||||||
|
color: rgb(30 64 175 / var(--tw-text-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
|
.underline {
|
||||||
|
text-decoration-line: underline;
|
||||||
|
}
|
||||||
|
|
||||||
.filter {
|
.filter {
|
||||||
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,8 @@
|
||||||
your experience.
|
your experience.
|
||||||
</p>
|
</p>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<main class="bg-blue-100 h-screen w-screen grid place-content-center">
|
<main class="bg-blue-100 h-screen w-screen grid place-content-center relative">
|
||||||
|
<a href="/logout" class="absolute end-4 top-4 underline text-blue-800 font-bold">Logout</a>
|
||||||
<section>
|
<section>
|
||||||
<h1 class="text-2xl text-blue-600 font-bold tracking-wide uppercase">
|
<h1 class="text-2xl text-blue-600 font-bold tracking-wide uppercase">
|
||||||
Auth successful, yay
|
Auth successful, yay
|
||||||
|
|
|
@ -89,7 +89,10 @@ case class AuthService()(implicit cc: castor.Context, log: cask.Logger)
|
||||||
|
|
||||||
val context = new PageContext()
|
val context = new PageContext()
|
||||||
context.setVariable("iconLocationsMap", iconLocations.asJava)
|
context.setVariable("iconLocationsMap", iconLocations.asJava)
|
||||||
context.setVariable("oauthProvidersList", authOptions.authProviders.sortBy(_.name).asJava)
|
context.setVariable(
|
||||||
|
"oauthProvidersList",
|
||||||
|
authOptions.authProviders.sortBy(_.name).asJava
|
||||||
|
)
|
||||||
context.setVariable("redirectUrl", oauthLinks.asJava)
|
context.setVariable("redirectUrl", oauthLinks.asJava)
|
||||||
|
|
||||||
val authPage = templateEngine.process("auth", context)
|
val authPage = templateEngine.process("auth", context)
|
||||||
|
@ -100,7 +103,9 @@ case class AuthService()(implicit cc: castor.Context, log: cask.Logger)
|
||||||
val githubOption = authOptions.authProviders.find(_.name == "github")
|
val githubOption = authOptions.authProviders.find(_.name == "github")
|
||||||
|
|
||||||
val githubRedirect =
|
val githubRedirect =
|
||||||
githubOption.map(_.authUrl).getOrElse("") ++ getRedirectLandingUrl("github")
|
githubOption.map(_.authUrl).getOrElse("") ++ getRedirectLandingUrl(
|
||||||
|
"github"
|
||||||
|
)
|
||||||
|
|
||||||
cask.Response(
|
cask.Response(
|
||||||
authPage,
|
authPage,
|
||||||
|
@ -191,6 +196,30 @@ case class AuthService()(implicit cc: castor.Context, log: cask.Logger)
|
||||||
okMessageFirst
|
okMessageFirst
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@cask.get(s"/logout")
|
||||||
|
def logoutAndRedirectToRoot() = {
|
||||||
|
println(s"about to logout")
|
||||||
|
|
||||||
|
val redirectToIndex = renderRedirectPage(
|
||||||
|
"/",
|
||||||
|
"You will be redirected to home page soon",
|
||||||
|
0
|
||||||
|
)
|
||||||
|
|
||||||
|
cask.Response(
|
||||||
|
redirectToIndex,
|
||||||
|
headers = Seq("Content-Type" -> "text/html;charset=UTF-8"),
|
||||||
|
cookies = Seq(
|
||||||
|
cask.Cookie(
|
||||||
|
name = authCookieName,
|
||||||
|
value = "",
|
||||||
|
path = "/",
|
||||||
|
expires = Instant.EPOCH
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@cask.staticResources("/public")
|
@cask.staticResources("/public")
|
||||||
def servePublicResources() = "public"
|
def servePublicResources() = "public"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue