2021-09-20 05:06:26 +00:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
2022-01-21 06:48:07 +00:00
|
|
|
"log"
|
|
|
|
|
2022-01-17 06:02:13 +00:00
|
|
|
"github.com/authorizerdev/authorizer/server/db"
|
2022-01-21 06:48:07 +00:00
|
|
|
"github.com/authorizerdev/authorizer/server/db/models"
|
2022-01-17 06:02:13 +00:00
|
|
|
"github.com/gin-gonic/gin"
|
2021-09-20 05:06:26 +00:00
|
|
|
)
|
|
|
|
|
2022-01-17 06:02:13 +00:00
|
|
|
// StringSliceContains checks if a string slice contains a particular string
|
2021-10-19 07:27:59 +00:00
|
|
|
func StringSliceContains(s []string, e string) bool {
|
2021-10-13 16:41:41 +00:00
|
|
|
for _, a := range s {
|
|
|
|
if a == e {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
2022-01-17 06:02:13 +00:00
|
|
|
|
|
|
|
// SaveSessionInDB saves sessions generated for a given user with meta information
|
2022-01-21 06:48:07 +00:00
|
|
|
// Do not store token here as that could be security breach
|
2022-01-17 06:02:13 +00:00
|
|
|
func SaveSessionInDB(userId string, c *gin.Context) {
|
2022-01-21 06:48:07 +00:00
|
|
|
sessionData := models.Session{
|
2022-01-17 06:02:13 +00:00
|
|
|
UserID: userId,
|
|
|
|
UserAgent: GetUserAgent(c.Request),
|
|
|
|
IP: GetIP(c.Request),
|
|
|
|
}
|
|
|
|
|
2022-01-21 08:04:04 +00:00
|
|
|
err := db.Provider.AddSession(sessionData)
|
2022-01-21 06:48:07 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Println("=> error saving session in db:", err)
|
|
|
|
} else {
|
|
|
|
log.Println("=> session saved in db:", sessionData)
|
|
|
|
}
|
2022-01-17 06:02:13 +00:00
|
|
|
}
|