Sign-in - Public: doesn't work as expected

Not sure if this is a bug but during our app’s development phase we had the sign-in status as PUBLIC.

We noticed that whenever we tried to Favourite an item, a pop up welcome screen appeared requesting us to sign-in.

Great! That’s what we expect to happen.

However, non-logged in users are able to use any of our contact forms where one of the ‘special values’ is the user’s email address.

This means that they are able to send an email message but it doesn’t capture their email address because our app is ‘Public’.

Like the request to sign-up whenever they try to favourite something, we should only allow them to use the contact forms if they sign-up.

The only solutions to this would be to either add an email field to the form (not ideal), or switch our sign-in status to ‘Public with email’ which defeats the purpose of our app which is simply to enable anyone to browse the content, but only be required to sign-up when they want/need to take some action, in this case add to favourites or use the contact forms.

As a Pro user it would be great if there was some option that enabled us to make it a requirement to sign-up to our app in order to use the contact forms.

1 Like

Hi @garrison, have you tried using component visibility and user profiles?

Here is a post from @Jeff_Hager, specifically on component visibility and user profiles.

3 Likes

@nathanaelb: I’m looking into this now, thank you for sharing it.

It would be much better, for various reasons, to encourage users with a genuine intent to sign up to use this functionality, as it weeds out the time-wasters, scammers, spammers and other misfits.

@nathanaelb: It seems that User Profiles is not a viable option for my use case as it requires my app to use sign-in with email, email whitelist or belong to an organization.

To be clear, our app should be visible to Public in order for anyone to easily browse our content.

They should only need to sign-up or login if they want to do any of the following actions:

  1. Save items to favourites
  2. Use a contact form to send communications

As it currently stands, only the first option works in Public mode. The other option doesn’t work at all as the forms allow anyone to send communication.

Making our app Public with email adds an unnecessary barrier to entry.

We are at a dead end here.

1 Like

Build your app using the sign in with email or email whitelist, then, make it back to public. In order to display the log in form, add a tab in the app menu (you’ll get the hamburger menu containing the login form and the disconnect option).

This way, your app will be public, but your users will be able to sign in. And use the User profiles tab to ensure to be able to get them as “signed in users”. This way, you will be able to set the visibility condition for some of your components using the “is signed in user” condition.

1 Like

@Christophe_HK: Thank you, but the only problem is I have already built my app. Also, it is now a Pro app.

Will I need to start from scratch?

I’m not 100%, but pretty sure user profiles will work on a public app. You may need to add something to the upper left menu to get to it, but it should work. Then only show the form button if the user profile email is not empty.

2 Likes

No, you’ll just need to add a visibility condition (… is signed in user) to the components you want visible to the signed in users only. Don’t restart from scratch, no need :wink:

1 Like

Just to be clear, @Christophe_HK and I are taking about two different methods. My option is probably safer long term and matches the first option in my referenced post. His is a little bit if a hack and locks down the app temporarily any time you have to make UI changes that involve ‘signed in user’, but opens up more options for settings by signed in user. Either way would work, but I just wanted to clarify that these are both two different methods to try with a public app.

3 Likes

@Jeff_Hager & @Christophe_HK thanks guys, I’m going to try and digest both options and see which one will work in our case.

It’s annoying that this isn’t a core option in Glide.

1 Like

OK, so first I tried switching my app to Email Whitelist, this enabled me to set the visibility to the User Email component.

But after switching back to Public, I get the error message: Your current privacy settings do not support this filter.

So back to the drawing board.

That’s the reason why @Christophe_HK’s option is a “hack”. It still works just fine a far as we have seen, even with the warning. (Trust me, he’s been all over this method and probably knows the ins and outs of it better than most)…but that’s why I’m not sure if it’s a long term viable solution and suggested the first option. The first option should work natively without any workarounds.

Wow, I thought this didn’t work! So glad you found out this.
Will implement it in several apps ASAP!

If I understand correctly, users will sign in only when adding an item to favorites? Or at what other scenario do they sign in to a public app?

A user can sign into a public app through the upper left menu.

For Public apps the sign-in option only supports sign-in with PIN. Is it possible to support google or facebook login inside of PIN. Its annoying for user’s to login via PIN every time.

Yes, Google is an option.

And the pin is only one time per user per device. Once you are signed on on that device, it should keep you signed in every time you open the app.

How? My app is Public. Sign-In option is there in Upper left menu which ask just ask for email and sends PIN.

Try to set to public with email, select the Google checkbox, then flip it back to Public.

Tried this. When flip it back to Public and goes to Sign-In, it just shows Email Entry field. “Sign In with Google” is not there.

@Christophe_HK @Jeff_Hager I also built my app originally as Public with email before the sign-in button was released. I tried switching it to Public and the screen is completely blank :slightly_frowning_face:

Am I missing something? Link below.

https://hollow-jump-2891.glideapp.io/

1 Like