auth

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package auth: Authenticate Nepse API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthHeader

func AuthHeader(req *http.Request, token string)

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages NEPSE auth tokens like the Python TokenManager/AsyncTokenManager.

func NewManager

func NewManager(httpClient NepseHTTP) (*Manager, error)

NewManager constructs a Manager. It loads and initializes the embedded WASM parser once.

func (*Manager) AccessToken

func (m *Manager) AccessToken(ctx context.Context) (string, error)

AccessToken returns a valid access token, refreshing if needed.

func (*Manager) Close

func (m *Manager) Close(ctx context.Context) error

Close releases WASM runtime resources.

func (*Manager) ForceUpdate

func (m *Manager) ForceUpdate(ctx context.Context) error

ForceUpdate forces a token refresh (rarely needed).

func (*Manager) GetSalts

func (m *Manager) GetSalts(ctx context.Context) ([5]int, error)

GetSalts returns the current salt values (used for payload generation)

func (*Manager) RefreshToken

func (m *Manager) RefreshToken(ctx context.Context) (string, error)

RefreshToken returns a valid refresh token, refreshing if needed.

type NepseHTTP

type NepseHTTP interface {
	// GetTokens performs GET to /api/authenticate/prove and returns the token response
	GetTokens(ctx context.Context) (*TokenResponse, error)

	// RefreshTokens performs GET to /api/authenticate/refresh-token and returns new tokens
	RefreshTokens(ctx context.Context, refreshToken string) (*TokenResponse, error)
}

NepseHTTP abstracts the token GET request your infra already has.

type TokenResponse

type TokenResponse struct {
	Salt1        int    `json:"salt1"`
	Salt2        int    `json:"salt2"`
	Salt3        int    `json:"salt3"`
	Salt4        int    `json:"salt4"`
	Salt5        int    `json:"salt5"`
	AccessToken  string `json:"accessToken"`
	RefreshToken string `json:"refreshToken"`
	ServerTime   int64  `json:"serverTime"` // ms since epoch
}

TokenResponse mirrors the JSON from /api/authenticate/prove.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL