Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

This tutorial explains how to install the Login App and setup a simple login form in your web page.

Install Login App

You can either

  • A) download the App package from the download page and install it manually or

  • B) use the UM Kickstarteror – if you are a developer – use UM Kickstarter

Either way you’ll need a license that covers de.pinuts.cmsbs.Auth2 to successfully install and use the Login App. Please contact support@pinuts.de when in doubt.

A) Install manually

If you need to install into an already existing UM you probably need to perform a manual installation as described in this section.

Go to https://www.universal-messenger.de/knowledge-base/intern/02_downloads/addons/index.html and download the Login App package (ZIP file).

...

Codeblock
languagebash
cd UM
unzip $DOWNLOAD_DIR/LoginApp-x.y.z.zip

Restart your UM instance.

Configure and install REST Proxy

Follow https://downloads.universal-messenger.de/knowledge-base/documentation/universal-messenger/html/UM_EN/Administration/REST-proxy.html to install and configure your REST-Proxy.

Add the following endpoints to your REST-Proxy’s controller whitelist:

  • de.pinuts.cmsbs.lib.widget.Pi

  • de.pinuts.cmsbs.auth2.Auth

  • de.pinuts.cmsbs.auth2.Widget

B) Install using UM Kickstarter

...

Codeblock
languagegroovy
dependencies {
    // ...
    runtime('de.pinuts.cmsbs:Auth2:4.6.2')
}.7.0')
}

Configure REST Proxy

Create a file named um/rest-proxy/cmsbs-restproxy.properties that configures the REST Proxy:

Codeblock
languagetext
cmsbs.resturl=http://localhost:8080/cmsbs/rest

cmsbs.restproxy.limit.controller.whitelist.1 = "de.pinuts.cmsbs.lib.widget.Pi"
cmsbs.restproxy.limit.controller.whitelist.2 = "de.pinuts.cmsbs.auth2.Auth"
cmsbs.restproxy.limit.controller.whitelist.3 = "de.pinuts.cmsbs.auth2.Widget"

Insert the following cp lines to your um/build.gradle file:

Codeblock
languagegroovy
setup.doLast {
    ...
    // UM REST Proxy
    cp('UM/web-integration/cmsbs-restproxy.war', new File(pinuts.um.webappsDir, 'p.war'))
    cp('rest-proxy/cmsbs-restproxy.properties', new File(pinuts.um.serverHome, 'cmsbs-restproxy.properties'))
}

Startup UM

Let gradle install the new dependency and start your UM instance:

...

Provide all of these Segments with the Semantic tag permission.

Create

...

Login App Instance

Go to Tools / Apps / Login and Authorization and create a new instance:

Set the unique name to my-app.

Enter a Title.

Select English as the Used language.

Select the Segment named can_login as the User base.

Enter permission as the Sematic tag to identify Segments representing web user permissions.

A) Manual installation:

Set URL of the REST proxy according to your installation.

B) Installation using UM Kickstarter:

Set URL of the REST proxy to /p.

Create a user Entry

Go to Entries / New Entry and create at least one customer user Entry that…

  • has an email address

  • and a password

  • and is member of at least one of the “permissions” Segments you created earlier.

Configure and install REST Proxy

...

  • .

...

Codeblock
languagetext
cmsbs.resturl=http://localhost:8080/cmsbs/rest

cmsbs.restproxy.limit.controller.whitelist.1 = "de.pinuts.cmsbs.lib.widget.Pi"
cmsbs.restproxy.limit.controller.whitelist.2 = "de.pinuts.cmsbs.auth2.Auth"
cmsbs.restproxy.limit.controller.whitelist.3 = "de.pinuts.cmsbs.auth2.Widget"

Insert the following cp lines to your um/build.gradle file:

Codeblock
languagegroovy
setup.doLast {
    ...
    // UM REST Proxy
    cp('UM/web-integration/cmsbs-restproxy.war', new File(pinuts.um.webappsDir, 'p.war'))
    cp('rest-proxy/cmsbs-restproxy.properties', new File(pinuts.um.serverHome, 'cmsbs-restproxy.properties'))
}

Now, setup and restart your UM instance:

Codeblock
gradle setup run

Create a simple node / express based web app

Open a second console window and clone the tutorial’s Git repo if you haven’t already done so:

Codeblock
git clone https://gitext.pinuts.de/um-public/tutorial-login-app.git

Start the sample web app using yarn:

Codeblock
cd tutorial-login-app/my-app
yarn
yarn dev

The sample web app contains a /user route, that reads the UMSESSIONID cookie and performs a GET request against an API endpoint (/cmsbs/rest/de.pinuts.cmsbs.auth2.Auth/c.json/[login-app-instance-name]) provided by UM's Login App to retrieve information about the logged-in web user: my-app/index.js

This API endpoint returns an empty user profile, if the current user has not logged-in successfully:

Codeblock
languagejson
{
  "data": {
    "ses": null,
    "config": {
      "rememberMe": false,
      "rememberMeDefault": false
    },
    "rememberMeLogin":false
  }
}

It returns a fully populated user profile if the user has logged-in successfully:

Codeblock
languagejson
{
  "data": {
    "ses": {
      "_pi": "my-app",
      "lastLogin": "2021-09-29|17:00:35",
      "loginIp": "127.0.0.1",
      "loggedIn": true,
      "authPass": true,
      "authCookie": false,
      "uid": "2333484",
      "firstname": "Bob",
      "lastname": "",
      "email": "bob@acme.com",
      "cookie": "b0779317014e0fa066efbf0621dc3bfc",
      "_permissions": ["perm1", "perm3"],
      "logoutUnconfirmed": false
    },
    "config": {
      "rememberMe": false,
      "rememberMeDefault": false
    },
    "rememberMeLogin": false
  }
}

Give it a try

...