Как я могу показать данные объекта пользователя, передавая аутентификации пользователя в rails 5 restful JSON API? - PullRequest
0 голосов
/ 14 ноября 2018

в v1 / controller

класс V1 :: ProfilesController

def index

 if user = User.authentication_keys.present?

    user = User.all

    render json: {status: 'load', message:'load', user: 'user'},status: :ok

    else

    render json: {status: 'error', message:'error', user: 'user'},status: :ok

    end
  end

в маршрутах

namespace :v1 do
resources :profiles
end

Я проверяю данные в почтальоне, передавая authentication_token, ноон не показывает объект пользователя изображение почтальона ] 1

мои данные пользователя в консоли rails

Идентификатор пользователя: 1, электронная почта: "adarsh1454 @ codekyt.com ", create_at:" 2018-11-14 07:35:59 ", updated_at:" 2018-11-14 07:35:59 ", аутентификационный токен:" tYHzjLm-6xxCeM4RXyEe "

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Вы передаете 'user' в виде строки своему JSON.Так что он просто отправит эту строку.Вы можете попробовать сделать что-то вроде:

render json: {status: 'load', message:'load', user: user.to_json},status: :ok

Или даже:

render json: user

Это избавит от атрибутов json статуса и сообщений, но вы можете утверждать, что статус должен отображаться каккод ответа HTTP, и вам не нужно сообщение, если вы передаете пользователя в качестве ответа.

edit

ОК, из вашего комментария я думаю, что вы, вероятно,нужно что-то вроде:

def index
  if request.headers["authentication_token"].present?
    user = User.find_by(authentication_token: request.headers["authentication_token"])     
    render json: user
  else
    render json: { .... whatever you want to render if not authorised }
  end
end
0 голосов
/ 14 ноября 2018

В успешном случае вы отвечаете следующим json:

{status: 'load', message:'load'}

, поэтому все работает так, как вы описали в контроллере.Если вы хотите вернуть объект пользователя, измените его на что-то вроде:

render json: { status: 'load', message:'load', user: 'user' }, status: :ok

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...