"sync"
"time"
- "github.com/bytom/blockchain/accesstoken"
+ "github.com/bytom/accesstoken"
"github.com/bytom/errors"
)
var loopbackOn = true
var (
- //ErrInvalidToken is returned when authenticate is called with invalide token.
+ //ErrInvalidToken is returned when authenticate is called with invalid token.
ErrInvalidToken = errors.New("invalid token")
//ErrNoToken is returned when authenticate is called with no token.
ErrNoToken = errors.New("no token")
}
type tokenResult struct {
- valid bool
lastLookup time.Time
}
if strings.HasPrefix(req.URL.Path, "/dashboard/") || req.URL.Path == "/dashboard" {
return req.WithContext(ctx), nil
}
+ // Adding this workaround for Equity Playground.
+ if strings.HasPrefix(req.URL.Path, "/equity/") || req.URL.Path == "/equity" {
+ return req.WithContext(ctx), nil
+ }
if loopbackOn && local {
return req.WithContext(ctx), nil
}
func (a *API) cachedTokenAuthnCheck(ctx context.Context, user, pw string) error {
a.tokenMu.Lock()
- res, ok := a.tokenMap[user + pw]
+ res, ok := a.tokenMap[user+pw]
a.tokenMu.Unlock()
if !ok || time.Now().After(res.lastLookup.Add(tokenExpiry)) {
- valid, err := a.tokens.Check(ctx, user, pw)
+ err := a.tokens.Check(user, pw)
if err != nil {
- return errors.Wrap(err)
+ return ErrInvalidToken
}
- res = tokenResult{valid: valid, lastLookup: time.Now()}
+ res = tokenResult{lastLookup: time.Now()}
a.tokenMu.Lock()
- a.tokenMap[user + pw] = res
+ a.tokenMap[user+pw] = res
a.tokenMu.Unlock()
}
- if !res.valid {
- return ErrInvalidToken
- }
return nil
}