Я использую интерфейс React с API-интерфейсом raq graphql для SaaS-проекта с квартирой.Мне нужно получить токен авторизации из request.env, чтобы я мог декодировать user_id, чтобы получить имя арендатора, которое является полем в модели User.Это для общего лифта, основанного на пользователе, вошедшем в систему. Когда я проверяю журнал регистратора Rails, я вижу, что "HTTP_AUTHORIZATION" => "" это пусто.что я пошел не так
Это из index.js, где добавлена авторизация:
const authLink = setContext((_, { headers }) => {
const token = localStorage.getItem(AUTH_TOKEN)
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : ''
}
}
})
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
})
ReactDOM.render(
<BrowserRouter>
<ApolloProvider client={client}>
<App />
</ApolloProvider>
</BrowserRouter>,
document.getElementById('root')
);
И здесь я пытаюсь извлечь его в Rails:
Rails.application.config.middleware.use Apartment::Elevators::Generic, lambda { |request|
tenant_name = nil
if request.env["HTTP_AUTHORIZATION"]
token = request.env["HTTP_AUTHORIZATION"]
payload = JWT.decode token, Rails.application.secrets.secret_key_base, 'HS256'
user_id = payload.first["user_id"]
tenant_name = User.find(user_id).subdomain
end
tenant_name
}