cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

How do i Integrate a License-check in my app. (Third-party-Development perpective)

How do i Integrate a License-check in my app. (Third-party-Development perpective)

blendajazi
New Poster

Hi Community, 

i am wondering what the proper way is, to implement a license check in my app. 

The License check should be able to check if a user/customer has the right license for the app. Only then it should start the installation.

Can anybody help me on this or provide a good example? 

Here is a basic approach:

 

#POST request. Check for license
curl --location --request POST 'https://host/license-manager/api/v2/license'

# Condition

if [[ "$GET_RESPONSE" -ne 200 && $IsPermanent == true]] ; then
  echo "Start App installation"
else
  echo "Stop App installation. No License available"
  exit 0

 

 

 

 

 

2 REPLIES 2

CodeShepherd
Community Moderator
Community Moderator

As far as I know the installation is normally not be prohibited by the licence. You should check while the boot up of your code if the license is valid or not and decide if to stop the function. See Developer Guideline for more information.

There are two ways to get the information:

1) Open API:

see API description your ctrlX CORE "https://<IP of your control>/doc/api/license-manager/#/Licenses/acquireLicens:

  1. Get the license from API e.g. via REST or curl. Here the bearer token in the header is needed:
    CodeShepherd_0-1627990901761.png

  2. Check the response body if answer is 200 then the license is valid and reserved for you.

 

2) Unix Sockets:

  1. Add a plug in your snapcraft.yaml:
    plugs:
    ...
      # Bosch Rexroth licensing service.
      licensing-service:
        interface: content
        content: licensing-service
        target: $SNAP_DATA/licensing-service
    
    apps:
      # Make runtime connect accessible.
      runtime:
        command: connect
        plugs:
        - licensing-service
    
  2. Get the license via POST request (see API as above) to the socket using a http library that is able to use unix sockets.
    unixSocket = "$SNAP_DATA/licensing-service/licensing-service.sock"; ​
  3. Check the response body if answer is 200 then the license is valid and reserved for you.

Updated post above.

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist