Как бороться с произвольным количеством URI перенаправления?

Я разрабатываю приложение, в котором у пользователей есть свои собственные URL-адреса, и им нужно использовать API Google - конечно, с различными URI-редиректорами, например

  • www.example.com/johndoe/google/login
  • www.example.com/foobar/google/login

Итак, сначала я подумал, что могу просто решить эту проблему, используя подстановочные знаки (www.example.com/*/google/login), но, к сожалению, это не работает. Затем я начал кодировать простой прокси-сервер в Perl, но я не уверен, что он сработает, и у нас заканчивается время. Каков наилучший способ справиться с ситуацией? Я думал о добавлении нового редиректа URI в консоль из обработчика регистрации, но я не нашел способ, которым сервер мог это сделать.

Ответ 1

Подстановочные знаки не поддерживаются в URI Google OAuth2 redirect. Я считаю, что лучше всего использовать один URI редиректа и передать информацию о пользователе в параметре состояния. Параметр состояния возвращается вам в ответ. Затем, когда вы получаете код авторизации/токены, вы можете найти параметр состояния и соответствующим образом обработать ответ (например, перенаправить на свои URL-адреса, определенные пользователем).

Этот ответ содержит дополнительную информацию.