Does anyone know of a way to generate a user registration URL or a password reset URL through the API? For the registration URLs, we are trying to find a way to create a user and allow them to set their password and accept the terms of service, we are trying to stay away from doing those for them.
For the password reset URL we found that we could first open a different browser and go to the login page, click forgot password, enter their email address and then use the Notifications tool in Admin Tools to get the URL and send it to them but this is pretty cumbersome.
The reason why we are doing this is we have a high number of registration and password reset email delivery failures when users register with Canvas Catalog and we want to be able to retrieve that URL and send it to them if the email delivery fails.
Have you tried pseudonym[force_self_registration]=true?
This will send an email with a link where they can enter their password and accept the use policy.
Simple exmple using curl:
curl $server/api/v1/accounts/1/users \
-X POST \
-F 'user[name]=Elly Smith' \
-F 'pseudonym[unique_id]=esmith@somewhere' \
-F 'pseudonym[force_self_registration]=true' \
-F 'user[terms_of_use]=false' \
-H "Authorization: Bearer $token"
We tried it and it does what we need it to do but the problem is that sometimes the email doesn't show up and sometimes we are able to get the notification and send the actual link from the URL to them but its hit or miss if it shows up in the View Notifications tool. That's why we don't like relying on those emails. We are going to work with our CSM to see what it would take to get the registration URL added to the return response when a user is created given the force_self_registration is set to true and possibly a new endpoint to generate the password reset URL.