2016-11-26 5 views
0

Как бы я сделать URL перейти от:URL User ID Рельсы

localhost:3000/api/v1/users/1 

К URL, который является более универсальным, как так:

localhost:3000/api/v1/users/(id already assumed based on the signed in user) 

Есть ли способ, что я могу сделать URL идти к определенному идентификатору пользователя без того, чтобы пользователь действительно указывал идентификатор? Можно ли это предполагать только на основе уже подписанного пользователя? Ясность в этом вопросе была бы замечательной!

+0

HTTP не имеет гражданства. Поскольку вы выполняете API, пользователь обычно не подписывается по запросу, если вы не передадите файл cookie взад и вперед. – Sunny

ответ

1

Если у вас есть аутентификация, основанная на токенах, вы можете использовать их для поиска текущего пользователя. Наиболее распространенный подход - использовать маршрут /me.

class Api::V1::CredentialsController < Api::V1::ApiController 
    before_action :doorkeeper_authorize! 
    respond_to :json 

    # GET /me.json 
    def me 
    respond_with current_resource_owner 
    end 

    private 

    # Find the user that owns the access token 
    def current_resource_owner 
    User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token 
    end 
end 

В приведенном выше примере является реализацией с помощью Doorkeeper драгоценного камня.