Email confirmation not quite working

my app is SWDEV, id:D0C7A0DD-5B0A-4686-AAA6-BA91B1B33B5D
I’m trying to use Backendless email confirmation feature. I enabled it in dev console and enabled email template. The url in the confirmation email I received after test looked like this:
https://api.backendless.com/D0C7A0DD-5B0A-4686-AAA6-BA91B1B33B5D/
CloudCode API key/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBJZCI6IkQwQzdBMERELTVCMEEtNDY4Ni1BQUE2LUJBOTFCMUIzM0I1RCIsImV4cCI6MTYzNTc2MTc5NSwidXNlcklkIjoiNzg3NjU2MjktMjQ1OC00NzU3LTlDNkMtODc1QjRERkU2MkFBIn0.NFdMOXo0xhVvwTWKdRhC70in1LYhLXfCzgCWblstphc/users/confirmation
When I clicked this url, browser opened “https://api.backendless.com/D0C7A0DD-5B0A-4686-AAA6-BA91B1B33B5D/0CDAFC76-6BCC-4905-8722-F210CF544CA4/page/registration/index.html” and I only see:
“404. File not found.”
I don’t recall that I deleted anything built-in related to FrontendUI but my page doesn’t look like page in help doc, I don’t see “system” container nor confirmation pages.
here is screenshot


Could it be because my app is quite old and wasn’t updated properly?

Hi @yuriy ,

I have checked version of your app. Confirmation pages based on UI Builder templates were introduced for apps starting from 6.2.0 version. All older apps (your app has 5.7.2 version) are using old confirmation page which is located in “/web/templates/registration” folder.
In your app there is no such folder. So to fix your issue you should create “registration” folder with files “expired.html” (for expired link), “disabled.html” (for case when confirmation is disabled in your app), “failed.html” (for case when confirmation failed by some reason) and “index.html” (for successful confirmation)

Regards, Andriy

I see. Thanks. Can you share those html files you had back then for 5.7.2?

Yes, sure
registration.zip (3.8 KB)

Regards, Andriy

Thanks.
Next question, I noted that link I received contained CloudCode API Key. Shouldn’t that key be kept in secret, out of end-user reach?

Hello @yuriy

If during registration the user was registered using the CloudCode API key, then the registration confirmation link will come with this key. In your UI-builder settings, do you have this key selected for “Published App’s API Key”?

Regards,
Inna

hmm, I’m registering user via custom events, on the server, with cloud code api key.
So, you are saying I should rewrite this part, related to user register, so it is not run with cloud code api key?

@Andriy_Konoz another question, you mentioned “expired.html (for expired link)” but I can’t find docs and settings - what is default expiration time, is it possible to change it?

Hello @yuriy!

hmm, I’m registering user via custom events, on the server, with cloud code api key.
So, you are saying I should rewrite this part, related to user register, so it is not run with cloud code api key?

It’s up to you, but you don’t need to keep this key a secret.

Regards,
Alexander

The default expiration time of the email confirmation link is 10 days.
But unfortunately, you cannot change it in the settings.

Regards,
Alexander

I think I need to, in our app there are many restrictions in permissions to normal authenticated/none-authenticated users but for “ServerCodeUser” everything is allowed, so user with this key will have read/write access to all the data

A little clarification about changing the expiration time of the email confirmation link: expiration time can be changed by users of Pro and Managed plans.

Regards,
Alexander