[WIP]
This commit is contained in:
25
auth/auth.go
25
auth/auth.go
@@ -9,6 +9,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/dbhandler"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/golang-jwt/jwt"
|
||||
@@ -18,22 +19,35 @@ import (
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
type AuthMode string
|
||||
|
||||
var secret []byte
|
||||
var method string
|
||||
var DOMAIN string
|
||||
|
||||
const (
|
||||
Oidc AuthMode = "OIDC"
|
||||
UserPass AuthMode = "UserPass"
|
||||
)
|
||||
|
||||
type Connection struct {
|
||||
DatabaseConnection *mongo.Client
|
||||
usersDbHandler dbhandler.UsersDBHandler
|
||||
authorizationDbHandler dbhandler.AuthorizationDbHandler
|
||||
|
||||
authMode AuthMode
|
||||
userAuthDbHandler *dbhandler.UserPassAuthanticationDbHandler
|
||||
OidcAuthDbHandler *dbhandler.OidcAuthenticationDbHandler
|
||||
}
|
||||
|
||||
type TokenInfo struct {
|
||||
type Claims struct {
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email"`
|
||||
Permissions models.Permission `json:"permissions"`
|
||||
}
|
||||
|
||||
type AuthClaims struct {
|
||||
*jwt.StandardClaims
|
||||
TokenInfo
|
||||
Claims
|
||||
}
|
||||
|
||||
type InviteToken struct {
|
||||
@@ -42,8 +56,7 @@ type InviteToken struct {
|
||||
Token string `bson:"Token"`
|
||||
}
|
||||
|
||||
func signToken(token TokenInfo) (string, error) {
|
||||
|
||||
func signToken(token Claims) (string, error) {
|
||||
t := jwt.New(jwt.GetSigningMethod(method))
|
||||
|
||||
t.Claims = &AuthClaims{
|
||||
@@ -178,7 +191,7 @@ func (con Connection) signIn(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
token := TokenInfo{
|
||||
token := Claims{
|
||||
Username: userItem.Username,
|
||||
Permissions: userItem.Permissions,
|
||||
}
|
||||
|
Reference in New Issue
Block a user