Add new auth funcs for parsing tokens
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
package auth
|
||||||
|
|
||||||
|
import (
|
||||||
|
uuid "github.com/nu7hatch/gouuid"
|
||||||
|
"github.com/writeas/web-core/log"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetToken parses out the user token from either an Authorization header or simply passed in.
|
||||||
|
func GetToken(header string) []byte {
|
||||||
|
var accessToken []byte
|
||||||
|
token := header
|
||||||
|
if len(header) > 0 {
|
||||||
|
f := strings.Fields(header)
|
||||||
|
if len(f) == 2 && f[0] == "Token" {
|
||||||
|
token = f[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t, err := uuid.ParseHex(token)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Couldn't parseHex on '%s': %v", accessToken, err)
|
||||||
|
} else {
|
||||||
|
accessToken = t[:]
|
||||||
|
}
|
||||||
|
return accessToken
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetHeaderToken parses out the user token from an Authorization header.
|
||||||
|
func GetHeaderToken(header string) []byte {
|
||||||
|
var accessToken []byte
|
||||||
|
if len(header) > 0 {
|
||||||
|
f := strings.Fields(header)
|
||||||
|
if len(f) == 2 && f[0] == "Token" {
|
||||||
|
t, err := uuid.ParseHex(f[1])
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Couldn't parseHex on '%s': %v", accessToken, err)
|
||||||
|
} else {
|
||||||
|
accessToken = t[:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return accessToken
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user