Add users table
This commit is contained in:
parent
d876997eeb
commit
e6c20935bc
6
init.sql
6
init.sql
|
@ -4,7 +4,11 @@ CREATE TABLE lnauth(
|
|||
created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
session_id VARCHAR(48) NOT NULL DEFAULT encode(gen_random_uuid()::text::bytea, 'base64')
|
||||
);
|
||||
CREATE TABLE users(
|
||||
pubkey TEXT PRIMARY KEY,
|
||||
last_seen TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE TABLE sessions(
|
||||
pubkey TEXT NOT NULL,
|
||||
pubkey TEXT NOT NULL REFERENCES users(pubkey),
|
||||
session_id VARCHAR(48)
|
||||
);
|
||||
|
|
|
@ -69,6 +69,11 @@ func verifyLogin(c echo.Context) error {
|
|||
c.Logger().Error("bad signature")
|
||||
return c.JSON(http.StatusUnauthorized, map[string]string{"status": "ERROR", "reason": "bad signature"})
|
||||
}
|
||||
_, err = db.Exec("INSERT INTO users(pubkey) VALUES ($1)", query.Key)
|
||||
if err != nil {
|
||||
c.Logger().Error(err)
|
||||
return c.JSON(http.StatusInternalServerError, map[string]string{"status": "ERROR", "reason": "internal server error"})
|
||||
}
|
||||
_, err = db.Exec("INSERT INTO sessions(pubkey, session_id) VALUES($1, $2)", query.Key, sessionId)
|
||||
if err != nil {
|
||||
c.Logger().Error(err)
|
||||
|
@ -112,6 +117,11 @@ func sessionHandler(next echo.HandlerFunc) echo.HandlerFunc {
|
|||
err = db.QueryRow("SELECT pubkey FROM sessions WHERE session_id = $1", sessionId).Scan(&pubkey)
|
||||
if err == nil {
|
||||
// session found
|
||||
_, err = db.Exec("UPDATE users SET last_seen = CURRENT_TIMESTAMP WHERE pubkey = $1", pubkey)
|
||||
if err != nil {
|
||||
c.Logger().Error(err)
|
||||
return c.JSON(http.StatusInternalServerError, map[string]string{"status": "ERROR", "reason": "internal server error"})
|
||||
}
|
||||
c.Set("session", Session{pubkey})
|
||||
} else if err != sql.ErrNoRows {
|
||||
return c.JSON(http.StatusInternalServerError, map[string]string{"status": "ERROR", "reason": "internal server error"})
|
||||
|
|
Loading…
Reference in New Issue