package admin import ( "fmt" "math/rand" "os" "time" ) type ( Session struct { UserID string Token string Expires int64 } ) const TOKEN_LENGTH = 64 const TOKEN_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" var ADMIN_ID_DISCORD = func() string { envvar := os.Getenv("DISCORD_ADMIN_ID") if envvar == "" { fmt.Printf("DISCORD_ADMIN_ID was not provided. Admin login will be unavailable.\n") } return envvar }() var sessions []*Session func createSession(UserID string) Session { return Session{ UserID: UserID, Token: string(generateToken()), Expires: time.Now().Add(24 * time.Hour).Unix(), } } func generateToken() string { var token []byte for i := 0; i < TOKEN_LENGTH; i++ { token = append(token, TOKEN_CHARS[rand.Intn(len(TOKEN_CHARS))]) } return string(token) }