Рубин и HTTParty - PullRequest
       3

Рубин и HTTParty

1 голос
/ 29 октября 2009

Я запрашиваю внутренний API с множеством различных интерфейсов, каждый из которых REST:

/ пользователи /

/ пользователи / имя пользователя / контакты /

/ пользователи / __ username_ / свойства /

.....

Все эти интерфейсы имеют общую аутентификацию через вызов

/ Логин

и вернуть auth_key, который необходимо использовать при любых других вызовах

Итак, я создал класс для каждого интерфейса, что-то вроде:

class MyApi::Users
  include HTTParty

  def initialize(username, password)
     init = MyApi::Auth.new(username, password)
     @auth_token = init.auth["id"]
  end

  def create(options)
  end

  def show(username)
  end    

  def update(username, options)
  end

  def destroy(username)
  end

end

Поэтому после кодирования всего класса моя проблема заключается в том, нужно ли мне вызывать 2 разных интерфейса один за другим, например:

def test
  user = MyApi::Users.new("user", "password")
  user = user.show("toto")
  contacts = MyApi::Contacts.new("user", "password")
  contacts = contacts.list(user.id)
end

Как вы видите, мне нужно дважды пройти аутентификацию, и каждый мой экземпляр имеет свой токен, у вас есть идея, как я мог бы улучшить это без входа в систему дважды. Спасибо,

1 Ответ

1 голос
/ 29 октября 2009

Привет, Майк, почему ты аутентифицируешься при каждом звонке? Без знания вашего приложения может показаться, что вы должны использовать сеансы и выполнять аутентификацию только в первый раз, когда это необходимо

Не нужно передавать имя пользователя и пароль в контроллерах you вне контроллера входа / авторизации

Что-то вроде логики аутентификации будет иметь before_action, обеспечивающее аутентификацию пользователя и доступ к current_user

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