AFAIK нет реализации, чтобы сделать это напрямую. Вы можете переопределить эти стратегии поведения, чтобы ввести какой-то параметр сеанса, чтобы определить, какой есть какой, или вы можете использовать реквизиты заголовков JWT, чтобы определить, что он использовался в данном запросе.
Если вы используете значение по умолчанию database_authenticable
в настройках по умолчанию, оно используется для общей веб-навигации, которая использует преимущества сеансов браузера. Вы можете использовать это, чтобы идентифицировать своего пользователя, поскольку при использовании с помощью API файлы cookie / сессии обычно отсутствуют.
Посмотрите, что вы можете сделать с сессиями Rails и используйте это для идентификации браузеров вашего пользователя, это может быть что-то вроде этого:
session[:user_id] = @current_user.id
User.find(session[:user_id])
Тогда вы могли бы использовать session[:user_id].present?
, чтобы проверить, используется ли сеанс в данном контексте, за исключением поведения заголовка HTTP JWT.
Вы также можете сделать это наоборот, идентифицируя наличие и Authorization
или Authentication
Заголовок HTTP. Этого не будет, если у вас нет текущей аутентификации JWT или другого типа HTTP для текущего запроса. Это можно сделать следующим образом:
request.headers['Authorization'].present? || request.headers['Authentication'].present?