Red5 Documentation

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
        }
    }