Bugfix: ensure that hmacsecret exists
This commit is contained in:
parent
98f9e113d6
commit
4d857daf5d
2
main.go
2
main.go
@ -3,7 +3,7 @@ package main
|
||||
import (
|
||||
_ "multitenantStack/routers"
|
||||
companydb "multitenantStack/services/companydb"
|
||||
tokenTools "multitenantStack/services/tokenTools"
|
||||
"multitenantStack/services/tokenTools"
|
||||
"time"
|
||||
|
||||
"github.com/astaxie/beego"
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
|
||||
jwt "github.com/dgrijalva/jwt-go"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
var hmacSecret []byte
|
||||
@ -26,6 +27,10 @@ func InitTokenToolsService() {
|
||||
|
||||
// Validate a jwt tokenstring
|
||||
func Validate(Token string) (bool, jwt.Token) {
|
||||
if len(hmacSecret) < 32 {
|
||||
panic("No Secret initialized")
|
||||
}
|
||||
|
||||
token, err := jwt.Parse(Token, func(token *jwt.Token) (interface{}, error) {
|
||||
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
|
||||
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
|
||||
@ -60,3 +65,14 @@ func CreateToken(Claims jwt.MapClaims) string {
|
||||
|
||||
return tokenString
|
||||
}
|
||||
|
||||
func HashPassword(password string) (string, error) {
|
||||
bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14)
|
||||
return string(bytes), err
|
||||
}
|
||||
|
||||
func CheckPasswordHash(password, hash string) bool {
|
||||
// Interestingly this function costs around 800ms
|
||||
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
|
||||
return err == nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user