mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 06:40:26 +08:00
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package acme
|
|
|
|
import (
|
|
"crypto"
|
|
"encoding/json"
|
|
|
|
"github.com/go-acme/lego/v4/registration"
|
|
)
|
|
|
|
type User struct {
|
|
email string
|
|
resource *registration.Resource
|
|
key crypto.PrivateKey
|
|
registerFunc func(resource *registration.Resource) error
|
|
}
|
|
|
|
func NewUser(email string, key crypto.PrivateKey, registerFunc func(resource *registration.Resource) error) *User {
|
|
return &User{
|
|
email: email,
|
|
key: key,
|
|
registerFunc: registerFunc,
|
|
}
|
|
}
|
|
|
|
func (this *User) GetEmail() string {
|
|
return this.email
|
|
}
|
|
|
|
func (this *User) GetRegistration() *registration.Resource {
|
|
return this.resource
|
|
}
|
|
|
|
func (this *User) SetRegistration(resourceData []byte) error {
|
|
resource := ®istration.Resource{}
|
|
err := json.Unmarshal(resourceData, resource)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
this.resource = resource
|
|
return nil
|
|
}
|
|
|
|
func (this *User) GetPrivateKey() crypto.PrivateKey {
|
|
return this.key
|
|
}
|
|
|
|
func (this *User) Register(resource *registration.Resource) error {
|
|
this.resource = resource
|
|
return this.registerFunc(resource)
|
|
}
|