Heavily improved sessions
This commit is contained in:
parent
340f4d1f9c
commit
15e2717ea8
@ -9,7 +9,10 @@ func Install(app *aero.Application) {
|
|||||||
|
|
||||||
// Logout
|
// Logout
|
||||||
app.Get("/logout", func(ctx *aero.Context) string {
|
app.Get("/logout", func(ctx *aero.Context) string {
|
||||||
|
if ctx.HasSession() {
|
||||||
ctx.Session().Set("userId", nil)
|
ctx.Session().Set("userId", nil)
|
||||||
|
}
|
||||||
|
|
||||||
return ctx.Redirect("/")
|
return ctx.Redirect("/")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,10 @@ func InstallGoogleAuth(app *aero.Application) {
|
|||||||
|
|
||||||
// Auth Callback
|
// Auth Callback
|
||||||
app.Get("/auth/google/callback", func(ctx *aero.Context) string {
|
app.Get("/auth/google/callback", func(ctx *aero.Context) string {
|
||||||
|
if !ctx.HasSession() {
|
||||||
|
return ctx.Error(http.StatusUnauthorized, "Session does not exist", errors.New("Google login failed: Session does not exist"))
|
||||||
|
}
|
||||||
|
|
||||||
session := ctx.Session()
|
session := ctx.Session()
|
||||||
|
|
||||||
if session.ID() != ctx.Query("state") {
|
if session.ID() != ctx.Query("state") {
|
||||||
|
5
main.go
5
main.go
@ -31,8 +31,9 @@ func main() {
|
|||||||
// CSS
|
// CSS
|
||||||
app.SetStyle(components.CSS())
|
app.SetStyle(components.CSS())
|
||||||
|
|
||||||
// Session store
|
// Sessions
|
||||||
app.Sessions.Store = arn.NewAerospikeStore("Session")
|
app.Sessions.Duration = 3600 * 24
|
||||||
|
app.Sessions.Store = arn.NewAerospikeStore("Session", app.Sessions.Duration)
|
||||||
|
|
||||||
// Layout
|
// Layout
|
||||||
app.Layout = layout.Render
|
app.Layout = layout.Render
|
||||||
|
@ -6,6 +6,6 @@ component FrontPage
|
|||||||
p
|
p
|
||||||
a(href="https://github.com/animenotifier/notify.moe", target="_blank", rel="noopener") Source on GitHub
|
a(href="https://github.com/animenotifier/notify.moe", target="_blank", rel="noopener") Source on GitHub
|
||||||
|
|
||||||
//- .login-buttons
|
.login-buttons
|
||||||
//- a.login-button(href="/auth/google")
|
a.login-button(href="/auth/google")
|
||||||
//- img.login-button-image(src="/images/login/google", alt="Google Login", title="Login with your Google account")
|
img.login-button-image(src="/images/login/google", alt="Google Login", title="Login with your Google account")
|
@ -7,6 +7,10 @@ import (
|
|||||||
|
|
||||||
// GetUser ...
|
// GetUser ...
|
||||||
func GetUser(ctx *aero.Context) *arn.User {
|
func GetUser(ctx *aero.Context) *arn.User {
|
||||||
|
if !ctx.HasSession() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
userID := ctx.Session().GetString("userId")
|
userID := ctx.Session().GetString("userId")
|
||||||
|
|
||||||
if userID == "" {
|
if userID == "" {
|
||||||
|
Loading…
Reference in New Issue
Block a user