...
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).
...
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
Create a file named um/rest-proxy/cmsbs-restproxy.properties
that configures the REST Proxy:
...
language | text |
---|
...
.
...
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
...