php-crud-api icon indicating copy to clipboard operation
php-crud-api copied to clipboard

Process add'l data on registration

Open apps-caraga opened this issue 3 years ago β€’ 7 comments

Added procedure to process additional data sent during registration. Other changes:

  • Minor edit to readme to improve readability of the Firebase setup procedure.
  • Additional properties for dbAuth for checking max/min length of username as well as allowable characters (thru regex pattern)

NB. Currently, the code throws an error on duplicate entry on columns that are intended to be unique.

apps-caraga avatar Sep 16 '22 00:09 apps-caraga

Is it ready to merge? Did you accidentally close it?

mevdschee avatar Sep 17 '22 06:09 mevdschee

Is it ready to merge? Did you accidentally close it?

It still causes fatal error on duplicate keys exception so I closed it to review.

Basically, since we are processing additional data, it is possible that the extra data are defined to be unique in the users table. A common example would be an email address. I think we can query the users table if an email address is already registered, but if there 2,3 or more unique fields in the table (not common but possible), we'll also need to query 2,3, or more times.

apps-caraga avatar Sep 17 '22 11:09 apps-caraga

@mevdschee, Good day! I've added try{}catch around the createSingle invocation when registring new user so I can suppress the PDOException on duplicate key It's not a very elegant solution but that's all I can think of for now. I hope you can review and improve on it.

apps-caraga avatar Sep 17 '22 14:09 apps-caraga

Are there any news about it? Can this improvement be merged in the main branch?

My problem is that I use "apiKeyDbAuth mode" so after the user sends username and password to "/register", every following request is blocked because of the "user api_key" is missing (I need to send many fields including "api_key"). This improvement can be useful to bypass the problem. Or are there other solutions for my problem?

chattago2002 avatar Jan 20 '23 11:01 chattago2002

𝙸 𝚞𝚜𝚎𝚍 πšπš‘πšŽ πš–πš˜πšπš’πšπš’πšŽπš 𝚌𝚘𝚍𝚎 πšŽπšŸπšŽπš— πšπš‘πš˜πšžπšπš‘ πš’πš'𝚜 πš—πš˜πš 𝚒𝚎𝚝 πš–πšŽπš›πšπšŽπš 𝚝𝚘 πš–πšŠπš’πš—. π™°πš—πš’πš πšŠπš’, πš’πš 𝚒𝚘𝚞 𝚍𝚘 𝚝𝚘𝚘, 𝚒𝚘𝚞 πš—πšŽπšŽπš 𝚝𝚘 πš”πšŽπšŽπš™ πšπš‘πšŠπš πš’πš— πš–πš’πš—πš πš’πš— 𝚌𝚊𝚜𝚎 𝚒𝚘𝚞 πšœπš˜πš–πšŽπš‘πš˜πš  πšžπš™πšπšŠπšπšŽ πš’πš˜πšžπš› πšŠπš™πš™ πšŠπš—πš πšπš‘πšŽπš— πšπš‘πšŽ πš–πš˜πšπš’πšπš’πšŽπš 𝚌𝚘𝚍𝚎 𝚐𝚎𝚝𝚜 πš˜πšŸπšŽπš›πš πš›πš’πšπšŽπš—.

π™°πš—πš˜πšπš‘πšŽπš› 𝚠𝚊𝚒 πš πš’πšπš‘πš˜πšžπš πšžπšœπš’πš—πš πšπš‘πšŽ πš–πš˜πšπš’πšπš’πšŽπš 𝚌𝚘𝚍𝚎 πš’πšœ 𝚝𝚘 πšœπšπš˜πš›πšŽ πšπš‘πšŽ πš˜πšπš‘πšŽπš› πšžπšœπšŽπš› πšπšŽπšπšŠπš’πš•πšœ πš’πš— πšŠπš—πš˜πšπš‘πšŽπš› πšπšŠπš‹πš•πšŽ πšŠπš—πš πš–πšŠπš”πšŽ πš’πš 𝚊 πš–πšžπš•πšπš’-πšœπšπšŽπš™ πš™πš›πš˜πšŒπšŽπšœπšœ;

  • πšπšŽπšπš’πšœπšπšŽπš› πš“πšžπšœπš πšπš‘πšŽ πšžπšœπšŽπš›πš—πšŠπš–πšŽ & πš™πšŠπšœπšœπš πš˜πš›πš,
  • π™ΆπšŽπš πšπš‘πšŽ πš˜πšπš‘πšŽπš› πšžπšœπšŽπš› πšπš’πšŽπš•πšπšœ πš˜πš› πš’πš—πšπš˜ πšŠπš—πš 𝚜𝚊𝚟𝚎 𝚝𝚘 πšŠπš—πš˜πšπš‘πšŽπš› πšπšŠπš‹πš•πšŽ, πš•πš’πš—πš”πšŽπš 𝚝𝚘 πšžπšœπšŽπš› πšπšŠπš‹πš•πšŽ πš‹πš’ πšπš˜πš›πšŽπš’πšπš— πš”πšŽπš’.

π™°πšœ πšπš˜πš› πš‹πš•πš˜πšŒπš”πšŽπš πš›πšŽπššπšžπšŽπšœπšπšœ, 𝙸 πšœπšžπš™πš™πš˜πšœπšŽπš πš’πš'𝚜 𝚌𝚊𝚞𝚜𝚎𝚍 πš‹πš’ πšπš‘πšŽ πš–πš’πšœπšœπš’πš—πš πš‘πšŽπšŠπšπšŽπš› (𝚑-πšŠπš™πš’-πš”πšŽπš’). 𝙸 πš‘πšŠπšŸπšŽπš—'𝚝 πšœπšžπšŒπšŒπšŽπšœπšœπšπšžπš•πš•πš’ πšπš›πš’πšŽπš πšžπšœπš’πš—πš πšπš‘πšŽ πšπš‹π™°πšžπšπš‘ πšŠπš—πš πšŠπš™πš’π™ΊπšŽπš’π™³πš‹π™°πšžπšπš‘ πšπš˜πšπšŽπšπš‘πšŽπš›. π™ΌπšŠπš’πš‹πšŽ @mevdschee πšŒπšŠπš— πšŒπš˜πš—πšπš’πš›πš– πš’πš πšπš‘πšŽπšœπšŽ 𝚝𝚠𝚘 πš–πš’πšπšπš•πšŽπš πšŠπš›πšŽπšœ πšŒπšŠπš— πš‹πšŽ 𝚞𝚜𝚎𝚍 πš’πš— πšπš‘πšŽ πšœπšŠπš–πšŽ πšπš’πš•πšŽ.

π™°πšœ 𝚊 πš πš˜πš›πš”πšŠπš›πš˜πšžπš—πš, 𝚒𝚘𝚞 πšŒπšŠπš— πšœπšŽπšπšžπš™ 𝚝𝚠𝚘 πšŸπšŽπš›πšœπš’πš˜πš—πšœ 𝚘𝚏 πšπš‘πšŽ πšŠπš™πš’.πš™πš‘πš™, πš˜πš—πšŽ πšŒπš˜πš—πšπš’πšπšžπš›πšŽπš πš πš’πšπš‘ πšπš‹π™°πšžπšπš‘ - πšπš‘πš’πšœ πš πš’πš•πš• πš‘πšŠπš—πšπš•πšŽ πšžπšœπšžπšŠπš• πš›πšŽπšπš’πšœπšπš›πšŠπšπš’πš˜πš— πšŠπš—πš πšπš‘πšŽ πš˜πšπš‘πšŽπš› πš’πšœ πšπš˜πš› πšŠπš™πš’π™ΊπšŽπš’π™³πš‹π™°πšžπšπš‘ πšπš˜πš› 𝚞𝚜𝚎 πš‹πš’ πš’πš˜πšžπš› πšπš›πš˜πš—πšπšŽπš—πš

apps-caraga avatar Jan 21 '23 23:01 apps-caraga

𝙸 πš‘πšŠπšŸπšŽπš—'𝚝 πšœπšžπšŒπšŒπšŽπšœπšœπšπšžπš•πš•πš’ πšπš›πš’πšŽπš πšžπšœπš’πš—πš πšπš‘πšŽ πšπš‹π™°πšžπšπš‘ πšŠπš—πš πšŠπš™πš’π™ΊπšŽπš’π™³πš‹π™°πšžπšπš‘ πšπš˜πšπšŽπšπš‘πšŽπš›. π™ΌπšŠπš’πš‹πšŽ @mevdschee πšŒπšŠπš— πšŒπš˜πš—πšπš’πš›πš– πš’πš πšπš‘πšŽπšœπšŽ 𝚝𝚠𝚘 πš–πš’πšπšπš•πšŽπš πšŠπš›πšŽπšœ πšŒπšŠπš— πš‹πšŽ 𝚞𝚜𝚎𝚍 πš’πš— πšπš‘πšŽ πšœπšŠπš–πšŽ πšπš’πš•πšŽ.

You may get it to work, as I don't know of a reason it shouldn't work. Feel free to try it and open an issue if you get stuck.

π™°πš—πš˜πšπš‘πšŽπš› 𝚠𝚊𝚒 πš πš’πšπš‘πš˜πšžπš πšžπšœπš’πš—πš πšπš‘πšŽ πš–πš˜πšπš’πšπš’πšŽπš 𝚌𝚘𝚍𝚎 πš’πšœ 𝚝𝚘 πšœπšπš˜πš›πšŽ πšπš‘πšŽ πš˜πšπš‘πšŽπš› πšžπšœπšŽπš› πšπšŽπšπšŠπš’πš•πšœ πš’πš— πšŠπš—πš˜πšπš‘πšŽπš› πšπšŠπš‹πš•πšŽ πšŠπš—πš πš–πšŠπš”πšŽ πš’πš 𝚊 πš–πšžπš•πšπš’-πšœπšπšŽπš™ πš™πš›πš˜πšŒπšŽπšœπšœ;

If you make the fields nullable and add values to them later in the multi-step process then you don't even need multiple tables.

Are there any news about it? Can this improvement be merged in the main branch?

I'll look into merging this code.

mevdschee avatar Jan 22 '23 08:01 mevdschee

Here's the updated DbAuthMiddleware.

https://github.com/apps-caraga/php-crud-api/commit/c64d99604612867af72e2b7813d99e0348d43a68

apps-caraga avatar Apr 05 '23 13:04 apps-caraga