📝 Roadmap

This commit is contained in:
LittleSheep 2024-10-22 00:19:04 +08:00
parent ed05782319
commit 406031b966
4 changed files with 43 additions and 22 deletions

16
ROADMAP.md Normal file
View File

@ -0,0 +1,16 @@
# Roadmap
The development progress and plan for Hypernet.Nexus
- [x] Service discovery
- [x] Command system
- [x] High availability
- [x] Microservice gateway
- [ ] Authenticate (W.I.P)
- [ ] FastLSF (fast lua based serverless function)
The goal of project Hypernet is going to replace the Hydrogen as Solar Network server-side software.
And the goal of this project is going to replace Hydrogen.Dealer as the core component of Solar Network.
Other Hydrogen project will be refactored and upgraded to support Nexus as soon as the first stable version is released.
Some features will moved to command based api, such as daily sign in Passport which isn't in Nexus Standard and will be not in it.

26
pkg/internal/auth/http.go Normal file
View File

@ -0,0 +1,26 @@
package auth
import "github.com/gofiber/fiber/v2"
func SoftAuthMiddleware(c *fiber.Ctx) error {
atk := tokenExtract(c)
c.Locals("nex_token", atk)
if claims, err := tokenRead(atk); err == nil && claims != nil {
c.Locals("nex_principal", claims)
// TODO fetch user info
} else if err != nil {
c.Locals("nex_auth_error", err)
}
return c.Next()
}
func HardAuthMiddleware(c *fiber.Ctx) error {
if c.Locals("nex_principal") == nil {
err := c.Locals("nex_auth_error").(error)
return fiber.NewError(fiber.StatusUnauthorized, err.Error())
}
return c.Next()
}

View File

@ -8,28 +8,6 @@ import (
var JReader *sec.JwtReader var JReader *sec.JwtReader
func SoftAuthMiddleware(c *fiber.Ctx) error {
atk := tokenExtract(c)
c.Locals("nex_token", atk)
if claims, err := tokenRead(atk); err == nil && claims != nil {
c.Locals("nex_principal", claims)
} else if err != nil {
c.Locals("nex_auth_error", err)
}
return c.Next()
}
func HardAuthMiddleware(c *fiber.Ctx) error {
if c.Locals("nex_principal") == nil {
err := c.Locals("nex_auth_error").(error)
return fiber.NewError(fiber.StatusUnauthorized, err.Error())
}
return c.Next()
}
func tokenExtract(c *fiber.Ctx) string { func tokenExtract(c *fiber.Ctx) string {
var atk string var atk string
if cookie := c.Cookies(sec.CookieAccessToken); len(cookie) > 0 { if cookie := c.Cookies(sec.CookieAccessToken); len(cookie) > 0 {

View File

@ -0,0 +1 @@
package auth