Feedback: External Users

Hi Adalo Team

I have been thoroughly testing the external USERS with Xano, Backendless, Parse, Appwrite, and also with my own API playground. So far so good — some of the backends needed small hacks, for example, in Backendless one has to create a wrapper function that also “logs in” the user, otherwise no authentication token is returned (and Adalo wizard is not satisfied).

Here are some problems though I’ve regularly run into:

  1. In the external user configuration wizard, which surprisingly only appears when one opens the project or refreshes the page, the return values (ID and token) are “cached” and cannot be updated once cached. In other words if I adjust the API endpoint for login or signup, the return JSON variables are not updated. Imagine I use a wrong endpoint that only returns User ID (no Token) - correcting this endpoint string will not update the return JSON values (ALTHOUGH a correct JSON string is displayed when clicked on “show full response”). Deleting cache or using different browsers didn’t help. The only solution for me was to start over in a new project and making sure the correct endpoints are entered. Issue replicated maybe 20+ times and it behaves deterministically :slight_smile:

  2. To start using external users, according to your words one needs to create a new project. Please be aware this is a big no go for production. Once the feature will get officially released, is this going to be possible for the current projects without starting over? My current workaround was to copy-paste screens, at least, when starting over. However, variables, links, etc get lost and one needs to rebuild all from scratch.

My apologies for the very quick message. I hope it still helps :slight_smile:

Cheers
Miro

1 Like

Hi @miro ,

Thanks for sharing about these issues, guess that external collections need some attention to it.

While you are doing testing, are you using relational tables, and how many related tables at same time that we can get.

For example, let’s use school terms, Can we open collection of students that is related to some classes which is selected by few grades ?

Can we show them in nested custom list, such as 1st/outer list is grades, 2nd/inner list is classes and 3rd/most inner list is students ?

Do you use addon in xano ?

It is nice to have an insight from someone have done that.

Thanks

Hi Yongki,

Thank you for your message.

While you are doing testing, are you using relational tables?
Yes, I am using relational databases. Besides the BaaS I am also playing with my own backend hosted in a cloud — I rely on a managed PostgreSQL database AND PostgREST that automatically creates API endpoints for all database tables and views — these endpoints I can access from the Adalo app. What I love is that I can use built-in SQL functionality in the backend that perform a “cascaded deletion” of records automatically, for example. Or create functions (PostgreSQL functions) to give even more logic to the backend.

HOWEVER, in external relational databases, the primary and foreign keys are not working interactively as they do for the internal collections (Parent table->Child table->Grandchild :slight_smile: ). One has to do it manually in Adalo frontend by searching child.id that corresponds to parent.child_id. Please let me know if that is not understandable.

How many related tables at same time that we can get?
I haven’t tested the maximum number of tables, shame on me :slight_smile:

For example, let’s use school terms, Can we open collection of students that is related to some classes which is selected by few grades ?
Yes, sure, but not so easy as in internal collections. One has to manually look up for the correct child based on parent’s foreign key.

Can we show them in nested custom list, such as 1st/outer list is grades, 2nd/inner list is classes and 3rd/most inner list is students ?
Yes, BUT. There is a performance drawback because for each layer there is a separate API call. The best feature to use here is something like Views (yup, Xano calls it “data addons”). With Views you can make 1 API call and get these things as a single table (to be very detailed, using SQL JOINs).

Do you use addon in xano ?
Yes, addon in xano, or views in backendless or generally in SQL, is the way to go. I wish this was part of the Adalo’s backend one day.

Did I help or did I confuse more? :slight_smile:

Best
Miro

2 Likes

Hi @miro ,

Thanks for detailed explanation.

It will help me to figure out where to focus on.

When the time comes, I look further to discuss this.

Thank you very much.

1 Like

I just got into the beta, but I can’t figure out how to set this up with an external collection. The two buttons for YouTube and the help docs doesn’t work. I’m now stuck -_-

I also tried putting in some dummy data for steps 2-4 (which obviously failed all the tests), but then when I get to step 4, I see this, and then the “Next” button doesn’t even work.

Any help from someone experienced would be greatly appreciated. I’m trying to connect it to Discord which I think meets the requirements for external users: Discord Developer Portal — Documentation — OAuth2

@miro @Yongki

Yeah, it is a bit tricky at this moment. Don’t worry about the step 5, the pre-made forms have not been implemented yet. The target is to make it to step 4. To get it there, we need to get successful responses from your API endpoints, for both login and sign up. These responses should return a User ID and a Token (such as JWT token). Dummy data won’t make it.

What is your backend? Xano? Backendless?

I found it easiest with Xano. Backendless does not authenticate user after signing up (token is missing in the response) and hence there is some manual work to be done — namely wrapping the signup function into another function that also logs the newly registered user in. I could help you with that too, I think I still might have it configured in my account.

1 Like

Thanks for your input, cleared up a lot of things. I’m a newbie when it comes to stuff like this :smiley:

I’m trying to use Discord for users. For data, I’m using Airtable. Since I can’t find any tutorials specifically for this, I’m tweaking and tinkering my way around. At this moment, I’m trying to see if I can get connect Discord users to here using
Auth0: Secure access for everyone. But not just anyone.

1 Like

While it seems possible to connect Auth0 with Discord (https://auth0.com/docs/connections/social/discord), both Auth0 and Discord (if used without Auth0) use OAuth authentication. This is not supposed to be working with Adalo YET according to the wizard while registering as a Beta user :frowning:

If I understand it right, this Beta feature corresponds to this feature request:

The OAuth is part of it though — that’s good news. Perhaps it is not supported YET.

@All - does anyone have experience with this?

1 Like

You’re right, I missed that part! I confused these two together

Hey @AddyEdwin,

Did you end up figuring out how to complete the setup? I’m having the same issue — once I get to step 4 the “Next” button doesn’t work.

Thanks,
Mikhaeel

Nope I didn’t. I’m don’t know anything about APIs so I put the wrong stuff in steps 2 and 3. Also, as Miro pointed out, I can’t use apps with OAuth now (I forgot about that part since I signed up to the beta a long time ago and confused it with another upcoming feature)

2 Likes

Hi Mikhaeel

The step 5 has not been implemented yet. Just close the wizard :slight_smile: As Ben mentioned in one of the setup video, the 5th step will help us implement a login/signup forms (currently we need to put them together by using input fields and a button with custom action).

Hope that helps. No worry about step 5 :slight_smile: Just close the window or click save. I think it’s saved automatically.

Miro

Hi Miro,

Oh, I see. I didn’t know that step 5 wasn’t implemented yet. I couldn’t access the tutorial video or documentation because the button links to those pages didn’t work either.

Thanks for clarifying!

Best,
Mikhaeel

Yeah we need a mirror for those links

I want to tell you about my problems with the External Users:

  • In the Login authorization, any work with the answer is missing, it is impossible to display a notification with an error (incorrect password, etc.)
  • upon successful registration, the token and user id are not saved and the authorization is not saved.

Any help with respect to authentication using any of the following would be great!

Authentication API Explorer Autho
Or
Where do I start with Firebase Authentication?

Adalo is only showing authToken as an option to select in the Login setup ‘which output is the userid’ dropdown - However I followed every step in the tutorial process and the API is working correctly. Does someone know how I can fix this or what I did wrong?

Hi !

I think I’am a problem with the user ID after perform a login on my Xano backend.
I have following this tutorial (Adalo External Users Beta + Xano: Part 1: Xano Setup - YouTube) and all seems be OK on Xano. I can try login or signup and in return, I can have a token and a user id.
When I perform the connection from Adalo with the menu, all seems be OK:

I use the external login with a custom inputs and login button to perform the authentication from Adalo to Xano. Its works because if I enter a bad user, I Am rejected.

Now, I display a list with an external collection and I make a query parameter (user_id) to display only elements for the current login user:

When i preview, I can login but the list not take the query parameter, I can see all elements, not only this of current user:

Now, if I set manually the user_id (ex: 1) of query parameter:

it’s works:

And if I try to display the External Users ID in a text, it is empty and not display on screen:

So, my conclusion is the External Users ID is not store in my case.
Can you help me please ?

Hi !
Any help about this “bug” ?
I have try to recreate a new project and the problem persist.

Hi Miro,
I also got a problem with Backendless user token after signup.
Can you share how to warp the signup function into another so I can get the user token after signup?
Or direct me for some info on that :slight_smile:

After all the testing do you have any suggestion what will be better backend to use with adalo? I was also considering Xano but started to work with Backendless. I can still switch.

I appreciate any help
Thanks