https://github.com/f3ndot/go-memberstack-admin
A go port of npm's `@memberstack/admin`.
https://github.com/f3ndot/go-memberstack-admin
go golang memberstack
Last synced: 8 months ago
JSON representation
A go port of npm's `@memberstack/admin`.
- Host: GitHub
- URL: https://github.com/f3ndot/go-memberstack-admin
- Owner: f3ndot
- License: mit
- Created: 2024-09-02T19:33:27.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-03T13:31:46.000Z (over 1 year ago)
- Last Synced: 2025-07-20T10:34:32.479Z (8 months ago)
- Topics: go, golang, memberstack
- Language: Go
- Homepage: https://pkg.go.dev/github.com/f3ndot/go-memberstack-admin
- Size: 36.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-memberstack-admin
[](https://github.com/f3ndot/go-memberstack-admin/actions/workflows/build.yml)
A [go](http://www.golang.org/) (or 'golang' for search engine friendliness) port of npm's [`@memberstack/admin`](https://www.npmjs.com/package/@memberstack/admin).
🐣 This is baby's first go module, so please: PR's welcome! 🙏
## Install
```bash
go get github.com/f3ndot/go-memberstack-admin
```
```go
import "github.com/f3ndot/go-memberstack-admin/admin"
```
## Usage
_Check out [cmd/examples](./cmd/examples/) for detailed usage_
### Verify Token
To verify a member's token:
```go
a := admin.NewMemberstackAdmin(admin.Options{
MemberstackAppId: "app_clzb..."
})
token, err := a.VerifyToken("eyJhbGc...jEifQ")
fmt.Println("is valid:", token.Valid, ", error:", err)
fmt.Println("member ID:", admin.GetMemberstackClaims(token).MemberID)
```
Or via the examples:
```bash
go run cmd/examples/verify_token.go -aud app_clzb... eyJhbGc...jEifQ
```
## TODO List
- [x] Tests 😅
- [ ] Feature parity with `@memberstack/admin`
- [x] Add own errors for fetching JWKS failure conditions
- [ ] Improve JWKS lifecycle (refreshing)
- [ ] Maybe: use [lestrrat-go/jwx](https://github.com/lestrrat-go/jwx) over MicahParks' keyfunc and jwkset