URL login

You can generate a permalink of your application to give a user direct access to protected data.

First, you should configure urllogin in the vars file:

urllogin:
    aes_key: foobarfoobar1234

The AES key must be either 16, 24, or 32 bytes long.

To generate a key, you can use the docker compose exec geoportal urllogin command:

Generate an auth token

usage: docker compose exec geoportal urllogin [-h] [--config-uri [CONFIG_URI]]
                                              [--config-vars [CONFIG_VARS ...]]
                                              user password [valid]

Positional Arguments

user

The username

password

The password

valid

Is valid for, in days

Default: 1

Named Arguments

--config-uri

The URI to the configuration file.

Default: 'c2c://geoportal/development.ini'

--config-vars

Variables required by the config file. For example, http_port=%(http_port)s would expect http_port=8080 to be passed here.

Default: ()

This generates a token like: auth=148b60cc... that you can add in the query string of the permalink.

When the user uses this link, s/he will be connected as a normal user, therefore you should be sure that the session timeout is not too big.

You can change the session timeout in the docker-compose.yaml file with:

services:
    geoportal:
        environment:
            # in second => One day
            AUTHTKT_TIMEOUT: 86400

How to build your token in your application

The content of the token is a json-encoded text like this:

{
    u: <username>,
    p: <password>,
    t: <timestamp> // end of validity in seconds
}

This content is then encrypted in AES with the provided key, and encoded in hexadecimal.