Я использовал второй подход, чтобы одно приложение сгенерировало токен, который затем можно будет затем аутентифицировать и авторизовать в приложении erlang. Это работает очень хорошо, так как две системы полностью независимы друг от друга, за исключением того, что токен создается одинаково.
Однако при таком подходе вы должны позаботиться о том, чтобы токен не мог быть воссоздан пользователями. Например, если пользователь должен узнать, как создать действительный токен для других пользователей, он может получить доступ к любой учетной записи пользователя в вашей системе. Пожалуйста, поймите, что крипто сложен, и даже профессиональные крипто-парни время от времени ошибаются. Я бы предложил обратиться к специалисту в этой области за помощью в создании токена.
Третий вариант запроса первого приложения для аутентификации и авторизации токена также может быть жизнеспособным решением. Проблемы, с которыми я сталкиваюсь, заключаются в том, что вы хотите вызывать первое приложение только один раз для каждого токена, а также аутентифицировать и авторизовать токен в следующих запросах внутри приложения erlang. Другая проблема состоит в том, что ваше приложение erlang теперь зависит от вашего приложения rails.