this post was submitted on 08 Jul 2023
4 points (75.0% liked)

Asklemmy

43471 readers
1710 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~

founded 5 years ago
MODERATORS
 

Lets say I want to host a private instance that will not federate and I do not want to have a sign up button in the top right corner, only a login.

This private instance is a by invitation only, an exclusive club. Is there a way to create a form on another website or on the WWW subdomain of the domain for creating an account on the lemmy instance. This form will ask for a username and email for the lemmy account and before generating the account it can check to see if the name is available. And once the form is submitted, it will generate the account with a generated password and email the login details in an automated email to the user (username, password, URL to instance) and in the email inform the user to change their password when they login for good security measures?

Obviously the form will need to be programmed. Is there simple and secure API calls that one could use to do this and make a form with NodeJS or PHP to generate an account on lemmy?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] AnAnxiousCorgi@lemmy.reddeth.com 4 points 1 year ago* (last edited 1 year ago) (2 children)

I see a couple ways you could do this. For what it's worth, I think Lemmy may be close enough to what you want out of the box. I run my own private instance similar to how you're laying out, although I don't "disable" registration, I do require account approval by an admin. I'm sure at some point I'll start getting spammed with registrations, but thus far it hasn't been an issue. Similarly, federation can be disabled as a setting in the admin section of Lemmy.

What you're laying out on the technical side is also absolutely possible. Lemmy has a JS client you can pull in as a dependency to manage the calls from Javascript, but it also describes the HTTP endpoint for said call, so you could make your own calls using a separate back end service (ie: after your form submits it makes the call over to your Lemmy instance to register the user).

Here's the register call specifically, which registers a new user on your instance: https://join-lemmy.org/api/classes/LemmyHttp.html#register

However, note that they would still not be "approved" (if your instance required approval to join), but you could just make another API call to complete that process: https://join-lemmy.org/api/classes/LemmyHttp.html#approveRegistrationApplication

As another option, I haven't dove into the actual code, but to the best of my knowledge Lemmy is ultimately just interacting with a Postgres database, my guess is you could likely also connect to this database and directly insert the appropriate rows to create your new user accounts. Definitely use some caution with this approach though, ensure you're using separate database users with appropriate permissions for each application. Additionally, know that if you write code to handle custom user registrations by writing straight to the DB, you'll have to be mindful of updates to Lemmy that change the DB schema for that table will (most likely) break your registration script/code.

Lastly, if you really wanted to, you could just fork Lemmy itself! The UI and API are completely separate services, there's nothing stopping you from forking the UI part of the project and applying your own custom changes to the registration flow for your own instance!

[โ€“] comcreator@lemmy.world 0 points 1 year ago

Thank you for the detailed info.

I just found this package for doing API calls using PHP

https://github.com/RikudouSage/LemmyApi

Is there something simular to this for NodeJS also?

load more comments (1 replies)