https://github.com/wechaty/token
Wechaty Token-Based Authentication Manager
https://github.com/wechaty/token
cli grpc token wechaty
Last synced: 9 months ago
JSON representation
Wechaty Token-Based Authentication Manager
- Host: GitHub
- URL: https://github.com/wechaty/token
- Owner: wechaty
- License: apache-2.0
- Created: 2021-08-02T05:20:47.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-19T08:07:36.000Z (about 4 years ago)
- Last Synced: 2025-06-29T20:39:09.355Z (9 months ago)
- Topics: cli, grpc, token, wechaty
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/wechaty-token
- Size: 142 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wechaty-token
[](https://github.com/wechaty/token/actions/workflows/npm.yml)
[](https://badge.fury.io/js/wechaty-token)
[](https://www.npmjs.com/package/wechaty-token?activeTab=versions)
[](https://www.typescriptlang.org/)

Wechaty Token Based Authentication Manager
## Install
```sh
npm install -g wechaty-token
```
## CLI Usage
```sh
$ wechaty-token --help
wechaty-token
> Wechaty utility for discovering and generating tokens
where can be one of:
- generate - Generate a new Wechaty Token
- discover - Wechaty TOKEN Service Discovery
For more help, try running `wechaty-token --help`
```
### Wechaty Token Discovery
```sh
$ wechaty-token discover --help
wechaty-token discover
> Wechaty TOKEN Service Discovery
ARGUMENTS:
- Wechaty Puppet Service TOKEN
FLAGS:
--help, -h - show help
```
Example:
```sh
# Discover a valid token (in-service)
$ wechaty-token discover puppet_IN-SERVICE-TOKEN
{
"host": "1.2.3.4",
"port": 5678
}
$ echo $?
0
# Discover a unvalid token (out-of-service)
$ wechaty-token discover puppet_OUT-OF-SERVICE-TOKEN
NotFound
$ echo $?
1
```
### Generate Wechaty Token
```sh
$ wechaty-token generate --help
wechaty-token generate
> Generate a new Wechaty Token
OPTIONS:
--type, -t - The type of the Wechaty Puppet Service [optional]
FLAGS:
--help, -h - show help
```
Example:
```sh
# Generate a UUID token (`uuid` will be the default type)
$ wechaty-token generate
uuid_1fab726b-e3d3-40ce-8b7b-d3bd8c9fd280
# Generate token with type `foo`
$ wechaty-token generate --type foo
foo_1fab726b-e3d3-40ce-8b7b-d3bd8c9fd280
```
## gRPC Resolver Usage
We now can use `wechaty:///${TOKEN}` as gRPC address for Wechaty Service Token Discovery.
The `WechatyResolver` is for resolve the above address and help gRPC to connect to the right host and port.
```ts
import { WechatyResolver } from 'wechaty-token'
WechatyResolver.setup()
// That's it! You can use `wechaty:///${TOKEN}` as gRPC address now!
// const routeguide = grpc.loadPackageDefinition(packageDefinition).routeguide;
// client = new routeguide.RouteGuide('wechaty:///${TOKEN}',
// grpc.credentials.createInsecure());
// See: https://grpc.io/docs/languages/node/basics/
```
See:
- [gRPC Name Resolution](https://github.com/grpc/grpc/blob/master/doc/naming.md)
- [Wechaty Puppet Service Code](https://github.com/wechaty/wechaty-puppet-service/blob/3a0285432e6916720c40604c61bcea6be5f63ab5/src/client/puppet-service.ts#L284-L285)
## History
### master v1.0 (Nov 28, 2021)
1. ES Module support
1. TypeScript 4.5
1. Wechaty Token Discovery output `JSON.stringify` format
### v0.5 (Sep 8, 2021)
1. Wechaty Token format standard released: `SNI_UUID`
1. `SNI` will be used as Server Indicator Name (SNI) when we are using TLS
1. `UUID` is a standard UUID format (v4)
1. add `wechatyToken.sni` support.
### v0.4 (Aug 15, 2021)
1. Use `cockatiel` to implement `RetryPolicy`
1. Use `nock` to implement HTTP unit testing
1. Implemented [#1](https://github.com/wechaty/token/issues/1)
### v0.2 master (Aug 2, 2021)
1. `wechaty-token` CLI released
1. gRPC Resolver for Wechaty: Enabled `xds` like schema `wechaty:///uuid_TOKEN` for gRPC client
### v0.0.1 (Aug 1, 2021)
Inited
## Author
[Huan LI](https://github.com/huan) ([李卓桓](http://linkedin.com/in/zixia)), Google Developer Expert (Machine Learning), zixia@zixia.net
[](https://stackexchange.com/users/265499)
## Copyright & License
- Code & Docs © 2018-now Huan LI \
- Code released under the Apache-2.0 License
- Docs released under Creative Commons