Feat: HMAC auth and check

This commit is contained in:
HFO4
2019-12-10 11:13:33 +08:00
parent 4649ddbae2
commit e871f6e421
7 changed files with 166 additions and 5 deletions

29
pkg/auth/auth.go Normal file
View File

@@ -0,0 +1,29 @@
package auth
import (
model "github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/serializer"
)
var (
ErrAuthFailed = serializer.NewError(serializer.CodeNoRightErr, "鉴权失败", nil)
ErrExpired = serializer.NewError(serializer.CodeSignExpired, "签名已过期", nil)
)
// General 通用的认证接口
var General Auth
// Auth 鉴权认证
type Auth interface {
// 对给定Body进行签名,expires为0表示永不过期
Sign(body string, expires int64) string
// 对给定Body和Sign进行检查
Check(body string, sign string) error
}
// Init 初始化通用鉴权器
func Init() {
General = HMACAuth{
SecretKey: []byte(model.GetSettingByName("secret_key")),
}
}