# Users Guillotina does not come with any user provider OOTB and is designed to be plugged in with other services. However, there is a simple provider that stores user data in the database called `guillotina_dbusers` that we will use for the purpose of our training. ## Install guillotina_dbusers Just use pip ``` pip install guillotina_dbusers ``` And add the `guillotina_dbusers` to the list of applications in your `config.yaml`. Also make sure you are not overriding the `auth_user_identifiers` configuration value in your `config.yaml` as `guillotina_dbusers` uses that to work. After you restart guillotina, you can also install `dbusers` into your container using the `@addons` endpoint: ``` POST /db/container/@addons { "id": "dbusers" } ``` ## Add users Creating users is just creating a user object. ``` POST /db/container/users { "@type": "User", "username": "foobar", "email": "foo@bar.com", "password": "foobar" } ``` Logging in can be done with the `@login` endpoint which returns a jwt token. ``` POST /db/container/@login { "username": "foobar", "password": "foobar" } ``` Then, future requests are done with a `Bearer` token with the jwt token. For example, to create a conversation with your user: ``` POST /db/container/conversations Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1MDgwMTU0OTcsImlkIjoiZm9vYmFyIn0.vC6HHuLmcf8d1I7RpOTxAeHQDfMRjsOoBS-xH4Q1sdw { "@type": "Conversation", "title": "New convo with foobar2", "users": ["foobar", "foobar2"] } ```