Initialisation
You can use this as a standalone recipe, or alongside any of the other recipes provided by us. To get started, initialise the recipe in the backend SDK's init function call:
- NodeJS
- GoLang
- Python
- Other Frameworks
Important
For other backend frameworks, you can follow our guide on how to spin up a separate server configured with the SuperTokens backend SDK  to authenticate requests and issue session tokens.
import SuperTokens from "supertokens-node";
import UserRoles from "supertokens-node/recipe/userroles";
SuperTokens.init({
    supertokens: {
        connectionURI: "..."
    },
    appInfo: {
        apiDomain: "...",
        appName: "...",
        websiteDomain: "..."
    },
    recipeList: [
        UserRoles.init(),
    ]
});
import (
    "github.com/supertokens/supertokens-golang/recipe/userroles"
    "github.com/supertokens/supertokens-golang/supertokens"
)
func main() {
    supertokens.Init(supertokens.TypeInput{
        RecipeList: []supertokens.Recipe{
            userroles.Init(nil),
        },
    })
}
from supertokens_python import InputAppInfo, init
from supertokens_python.recipe import userroles
init(
    app_info=InputAppInfo(
        api_domain="...", app_name="...", website_domain="..."
    ),
    framework='...',  
    recipe_list=[
        # Initialize other recipes as seen in the quick setup guide
        userroles.init()
    ]
)
By default, the user roles recipe will add the roles and permission information into a user's session (if they have assigned roles & permissions). If you do not want roles or permissions information in the session, or want to manually add it yourself, you can provide the following input configs to the UserRoles.init function:
- NodeJS
- GoLang
- Python
- Other Frameworks
Important
For other backend frameworks, you can follow our guide on how to spin up a separate server configured with the SuperTokens backend SDK  to authenticate requests and issue session tokens.
import UserRoles from "supertokens-node/recipe/userroles";
UserRoles.init({
    skipAddingRolesToAccessToken: true,
    skipAddingPermissionsToAccessToken: true,
})
import (
    "github.com/supertokens/supertokens-golang/recipe/userroles"
    "github.com/supertokens/supertokens-golang/recipe/userroles/userrolesmodels"
    "github.com/supertokens/supertokens-golang/supertokens"
)
func main() {
    supertokens.Init(supertokens.TypeInput{
        AppInfo: supertokens.AppInfo{ /*...*/ },
        RecipeList: []supertokens.Recipe{
            userroles.Init(&userrolesmodels.TypeInput{
                SkipAddingRolesToAccessToken:       true,
                SkipAddingPermissionsToAccessToken: true,
            }),
        },
    })
}
from supertokens_python import InputAppInfo, init
from supertokens_python.recipe import userroles
init(
    app_info=InputAppInfo(
        api_domain="...", app_name="...", website_domain="..."
    ),
    framework='...',  
    recipe_list=[
        userroles.init(skip_adding_roles_to_access_token=True,
                       skip_adding_permissions_to_access_token=True)
    ]
)