Stream Manager 2.0 Auth API
Auth is the Authentication service. Authorized users provide credentials to “log in”, and a JWT is created in response. The JWT is then presented when performing authenticated tasks (in other services — as-admin and as-streams specifically).
Usage Information
Give credentials and expect a JWT:
curl -H "Content-Type: application/json" -X PUT https://admin:xyz123@as-test1.example.org/auth/login
(where username is foo and password is bar)
(returns <token>)
then, assuming as-streams is running and that DebugVerifyController is built/deployed, verify token with HTTP GET:
curl -H "Content-Type: application/json" https://as-test1.example.org/streams/verify/<token>
Or (even without DebugVerifyController) supply as bearer token to a Provision request (all of which require authentication and will return 200 if authenticated correctly):
curl -v -H "Content-Type: application/json" -H "Authorization: Bearer <token>" https://as-test1.example.org/streams/provision/foo
(All one line)
JavaScript
    /**
     * Given Basic Auth params, request JWT
     * curl -v -H "Content-Type: application/json" -X PUT https://admin:xyz123@as-test1.example.org/as/v1/auth/login
     */
    const authenticate = async (smHost, smUser, smPassword) => {
        console.log("Request Authentication");
        try {
            const url = `https://${smHost}/as/v1/auth/login`
            const token = "Basic " + btoa(smUser + ":" + smPassword);
            const response = await fetch(url, {
                    method: 'PUT',
                    withCredentials: true,
                    credentials: 'include',
                    headers: {
                        'Authorization': token,
                        'Content-Type': 'application/json'
                    }
                })
            console.log("Authenticate response: " + response.status);
            var json = await response.json()
            if (json.errorMessage) {
                throw new Error(json.errorMessage)
            }
            return json.token;
        } catch (e) {
            console.log("authenticate() fail: " + e)
            throw e
        }
    }