mirror of
https://github.com/usememos/memos.git
synced 2025-02-19 04:40:40 +01:00
fix: get session handler
This commit is contained in:
parent
6f8ab0f3ff
commit
ef8034836c
@ -20,19 +20,15 @@ func getUserIdContextKey() string {
|
|||||||
return userIdContextKey
|
return userIdContextKey
|
||||||
}
|
}
|
||||||
|
|
||||||
// Purpose of this cookie is to store the user's id.
|
|
||||||
func setUserSession(c echo.Context, user *api.User) error {
|
func setUserSession(c echo.Context, user *api.User) error {
|
||||||
sess, err := session.Get("session", c)
|
sess, _ := session.Get("session", c)
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to get session, err: %w", err)
|
|
||||||
}
|
|
||||||
sess.Options = &sessions.Options{
|
sess.Options = &sessions.Options{
|
||||||
Path: "/",
|
Path: "/",
|
||||||
MaxAge: 1000 * 3600 * 24 * 30,
|
MaxAge: 1000 * 3600 * 24 * 30,
|
||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
}
|
}
|
||||||
sess.Values[userIdContextKey] = user.Id
|
sess.Values[userIdContextKey] = user.Id
|
||||||
err = sess.Save(c.Request(), c.Response())
|
err := sess.Save(c.Request(), c.Response())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to set session, err: %w", err)
|
return fmt.Errorf("failed to set session, err: %w", err)
|
||||||
}
|
}
|
||||||
@ -41,17 +37,14 @@ func setUserSession(c echo.Context, user *api.User) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func removeUserSession(c echo.Context) error {
|
func removeUserSession(c echo.Context) error {
|
||||||
sess, err := session.Get("session", c)
|
sess, _ := session.Get("session", c)
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to get session, err: %w", err)
|
|
||||||
}
|
|
||||||
sess.Options = &sessions.Options{
|
sess.Options = &sessions.Options{
|
||||||
Path: "/",
|
Path: "/",
|
||||||
MaxAge: 0,
|
MaxAge: 0,
|
||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
}
|
}
|
||||||
sess.Values[userIdContextKey] = nil
|
sess.Values[userIdContextKey] = nil
|
||||||
err = sess.Save(c.Request(), c.Response())
|
err := sess.Save(c.Request(), c.Response())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to set session, err: %w", err)
|
return fmt.Errorf("failed to set session, err: %w", err)
|
||||||
}
|
}
|
||||||
@ -59,7 +52,7 @@ func removeUserSession(c echo.Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use session in the initial version
|
// Use session to store user.id.
|
||||||
func BasicAuthMiddleware(us api.UserService, next echo.HandlerFunc) echo.HandlerFunc {
|
func BasicAuthMiddleware(us api.UserService, next echo.HandlerFunc) echo.HandlerFunc {
|
||||||
return func(c echo.Context) error {
|
return func(c echo.Context) error {
|
||||||
// Skips auth
|
// Skips auth
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"memos/api"
|
"memos/api"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/gorilla/securecookie"
|
||||||
"github.com/gorilla/sessions"
|
"github.com/gorilla/sessions"
|
||||||
"github.com/labstack/echo-contrib/session"
|
"github.com/labstack/echo-contrib/session"
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
@ -45,7 +46,7 @@ func NewServer(port int) *Server {
|
|||||||
HTML5: true,
|
HTML5: true,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
e.Use(session.Middleware(sessions.NewCookieStore([]byte("just_memos"))))
|
e.Use(session.Middleware(sessions.NewCookieStore([]byte(securecookie.GenerateRandomKey(16)))))
|
||||||
|
|
||||||
s := &Server{
|
s := &Server{
|
||||||
e: e,
|
e: e,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user