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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 Enter a Title. Select English as the Used language. | |
Select the Segment named Enter | |
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 |
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
{
"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 | ||
---|---|---|
| ||
{
"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
...