# ABT Node Auth Service

> Shared Service that can be reused across all blocklets running inside ABT Node, the service provides easy to use DID-Authentication and Role Based Access Control.

## 1. Start a Production Node

## 2. Configuration

```ini
PORT=3040
SKIP_PREFLIGHT_CHECK=true

# server only
ABT_NODE_SESSION_TTL="1d"
ABT_NODE_MODE="production"
ABT_NODE_SERVICE_PORT="3041"

# this should point to the data directory of node
ABT_NODE_DATA_DIR="/Users/wangshijun/Develop/arcblock/abt-node/.abtnode"

# both server and client
ABT_NODE_ROUTER_PROVIDER="nginx"
ABT_NODE_ADMIN_PATH="/admin"
ABT_NODE_NAME="ABT Node (Dev.Shijun)"
ABT_NODE_DESCRIPTION="Web Interface to manage your ABT Node"
ABT_NODE_DID="zNKaT2cjMMW4Js3hnBWUKPcdboQqrPUTWRat"
ABT_NODE_SERVICE_URL="http://192.168.199.142:3041"

# This should be updated to use a running blocklet in your node
TEST_BLOCKLET_DID="z8ia4e5vAeDsQEE2P26bQqz9oWR1Lxg9qUMaV"
TEST_BLOCKLET_URL="http://127.0.0.1:8090"
```

## 3. Start the service

You need 2 terminal windows to start the client and server separately:

```shell
cd services/login
DEBUG=@abtnode/*,@arcblock/* npm run start:daemon
DEBUG=@abtnode/* npm run start:client
```

Now, you are ready to hacking the login service.

## TO Developers

- dependencies for backend should go in `dependencies`
- dependencies for frontend should go in `devDependencies`
