# 3. Manage your authentication token

We want to manage our own cookie for authenticating the user into our app. We will user another npm library for this.&#x20;

```
npm install jsonwebtoken
```

We create a new file "authenticate/token.js" in which we will manage our own authentication token.

```
const jsonwebtoken = require("jsonwebtoken");

module.exports = {
    getCookieName,
    getCookieOptions,
    createToken
};

    // name our cookie
    function getCookieName() {
        return "my_jwt_token";
    }

    // same site cookie info...
    function getCookieOptions() {
        var objOptions= {
            sameSite: "Lax"
        };
        if(!gConfig.isDebug){
            objOptions.secure=true;
        }
        return objOptions
    }

    // JWT signed payload 
    function createToken(req) {
        let payload = {
            username: (req!=null && req.user!=null && req.user.username!=null) ? req.user.username.toString() : null,
            connector: (req!=null && req.user!=null && req.user.connector!=null) ? req.user.connector : null,
            blockchain: (req!=null && req.user!=null && req.user.blockchain!=null) ? req.user.blockchain : null,
            authorizations: (req!=null && req.user!=null && req.user.authorizations!=null) ? req.user.authorizations : null,
            provider_wallet: (req!=null && req.user!=null && req.user.provider_wallet!=null) ? req.user.provider_wallet : null,
            wallet_address: (req!=null && req.user!=null && req.user.wallet_address!=null) ? req.user.wallet_address : null
        };
        return jsonwebtoken.sign(payload, "mySecret", {
            expiresIn: "72h"
        });
    }

```
