You could do this by implementing link sharing with the DeepLink module from the AppStore. Then, when the DeepLink is accessed, you can check if the user has access to the object that has been retrieved. If the user has access, you can show the item, if the user does not have access, you show a custom error page.
You can automate the the security check by setting ApplyEntityAccess to true in your DeepLink microflow: if the user does not have access, no object will be retrieved.
You can try setting your homepage as a microflow in the navigation settings. This will allow you to run logic to determine what page a user should see every time they click the home button or access your application for the first time.
In project settings, if you go to navigation, you can select a microflow as the home page.