mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
feat: add ip whitelist
This commit is contained in:
parent
7a9aa3a33b
commit
3b937ee0f4
17 changed files with 1026 additions and 927 deletions
|
@ -1,63 +1,13 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/0xJacky/Nginx-UI/settings"
|
||||
"github.com/golang-jwt/jwt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Auth struct {
|
||||
Model
|
||||
Model
|
||||
|
||||
Name string `json:"name"`
|
||||
Password string `json:"-"`
|
||||
Name string `json:"name"`
|
||||
Password string `json:"-"`
|
||||
Status bool `json:"status" gorm:"default:1"`
|
||||
}
|
||||
|
||||
type AuthToken struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
type JWTClaims struct {
|
||||
Name string `json:"name"`
|
||||
jwt.StandardClaims
|
||||
}
|
||||
|
||||
func GetUser(name string) (user Auth, err error) {
|
||||
err = db.Where("name = ?", name).First(&user).Error
|
||||
if err != nil {
|
||||
return Auth{}, err
|
||||
}
|
||||
return user, err
|
||||
}
|
||||
|
||||
func DeleteToken(token string) error {
|
||||
return db.Where("token = ?", token).Delete(&AuthToken{}).Error
|
||||
}
|
||||
|
||||
func CheckToken(token string) int64 {
|
||||
return db.Where("token = ?", token).Find(&AuthToken{}).RowsAffected
|
||||
}
|
||||
|
||||
func GenerateJWT(name string) (string, error) {
|
||||
claims := JWTClaims{
|
||||
Name: name,
|
||||
StandardClaims: jwt.StandardClaims{
|
||||
ExpiresAt: time.Now().Add(24 * time.Hour).Unix(),
|
||||
},
|
||||
}
|
||||
unsignedToken := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
|
||||
signedToken, err := unsignedToken.SignedString([]byte(settings.ServerSettings.JwtSecret))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
err = db.Create(&AuthToken{
|
||||
Token: signedToken,
|
||||
}).Error
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return signedToken, err
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue