Я пытаюсь реализовать собственную конечную точку OpenID на основе SMF учетных записей пользователей. Я основал свой код на phpMyOpenID и некотором коде авторизации SMF.
Пока все отлично работает. Я могу использовать конечную точку для входа / регистрации на любом сайте. Если я не авторизован на SMF, он запросит мой логин, и если этот вход SMF успешен, он примет его.
Однако, похоже, что он не отличается между разными логинами SMF. То есть другой пользователь сообщил, что он пытался использовать конечную точку на сайте X, вошел в систему со своей учетной записью SMF и получил доступ к моей учетной записи пользователя на сайте X (я ранее зарегистрировал конечную точку OpenID на этом сайте).
Полагаю, мне нужно как-то отправить логин SMF или сделать его уникальным для каждого логина SMF. Поскольку это, вероятно, тривиально, что я должен сделать, я решил спросить здесь о SO - может быть, есть и другие вещи, которые мне нужно исправить.
Код (только PHP), если вы хотите посмотреть, здесь:
http://github.com/albertz/smf-openid-server
Или, может быть, просто опишите, что мне нужно сделать, чтобы сделать его уникальным для каждого логина SMF.
Другой проект, который я планирую, - клиент OpenID в многопользовательской игре C ++. Хостер будет иметь возможность разрешить вход только от людей, которые могут проходить аутентификацию через OpenID. Также я хочу разрешить вход в систему только определенным людям. Как часто можно получить уникальную строку, основанную на логине OpenID? В этом случае я подумал о чем-то вроде http://{smf-openid-endpoint}/{smf-user}
или http://www.google.de/profiles/{google-user}
. Какой канонический способ получить такую строку?
Я думаю, что этот другой вопрос может быть связан с моим основным вопросом, поэтому я и ставлю его здесь.
См. Также связанный вопрос: Является ли идентификатор URL уникальным? Какие существуют термины?