В этих типах систем вы обычно не назначаете какие-либо пользовательские данные (например, имена пользователей) до того, как приглашенный действительно зарегистрировался, и может быть немного затруднительно заставить работать такого рода URL в зависимости от рамки, которые вы используете.
Процесс обычно:
- Пригласите пользователя, который отправит ему электронное письмо.
- Приглашенный нажимает на ссылку в электронном письме, чтобы перейти на главную страницу регистрации сайта.
- Приглашенный регистрируется с действительным именем пользователя по своему выбору, и на основе некоторого уникального случайного ключа (включенного в ссылку перехода по клику) вы можете выполнять свою бизнес-логику с двумя вовлеченными пользователями (добавить в список друзей или что-то еще).
Недостатком генерации ваших собственных имен пользователей является то, что они, скорее всего, будут угаданы, чем случайные числа, потому что вы, вероятно, будете использовать в них английские слова. Если вы генерируете и назначаете случайные имена пользователей (то есть «s243k2ldk8sdl»), приглашенный не будет доволен, поскольку ему придется проделать дополнительную работу, чтобы изменить имя пользователя, или каким-то образом запомнить это имя.
РЕДАКТИРОВАТЬ , поскольку я не очень хорошо понял вопрос.
Я думаю, что схема в порядке, за исключением того, что я просто использовал бы имя пользователя приглашающего в URL и не позволил бы ему изменить его (зачем это разрешать?). Единственная проблема заключается в том, что существует какое-то ограничение на количество приглашений (или, может быть, существует вознаграждение за каждое приглашение), когда вы хотите обеспечить каждому клику какое-то уникальное значение хеш-функции, действительное только для приглашающего. URL.
РЕДАКТИРОВАТЬ 2
Поскольку пользователям в системе не назначены имена пользователей, вы можете пойти любым путем. Было бы хорошо разрешить назначение «имени пользователя» по принципу «первым пришел - первым обслужен», так как это позволило бы каждому проще делиться своим URL-адресом с друзьями, поскольку он запоминается и может быть просто введен. для регистрации требуется уникальный ключ ... в этом случае будет проще просто не реализовывать имя пользователя и направлять всех на какую-то страницу регистрации.