📝 Roadmap
This commit is contained in:
parent
ed05782319
commit
406031b966
16
ROADMAP.md
Normal file
16
ROADMAP.md
Normal 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
26
pkg/internal/auth/http.go
Normal 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()
|
||||||
|
}
|
@ -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 {
|
||||||
|
1
pkg/internal/auth/userinfo.go
Normal file
1
pkg/internal/auth/userinfo.go
Normal file
@ -0,0 +1 @@
|
|||||||
|
package auth
|
Loading…
Reference in New Issue
Block a user