我正在尝试一个基本的 API,但我处于一个十字路口,我不太确定如何进行。一般要点是,我向 /authenticate.json 提供了用户名和密码,并作为回报接收访问令牌。
如果我发出 GET 请求,我会得到我需要的信息。如果我尝试通过 POST 执行此操作,则会引发错误:
No route matches {:action=>"show", :controller=>"users", :id=>#<User access_token: "8922a3718bbe2a441a5ddddece3053a647941863b5ff2cad007...">}
路线.rb
match '/authenticate' => 'user_functions#authenticate', :via => [:post, :get]
控制器中的身份验证定义如下所示(我知道它很笨拙,我对 RoR / Ruby 不太熟悉)
def authenticate
if params['email'] and params['password']
userSearch = User.find(:all, :conditions => ['email = ?', params[:email]], :limit => 1)
if userSearch.count == 1
hash = Digest::SHA2.new << "#{userSearch.first.password_salt}#{params['password']}"
if hash.hexdigest == userSearch.first.password_hash
access_array = {"access_token" => userSearch.first.access_token}
userAccessDetails = User.find(userSearch.first.id, :select => "access_token")
respond_with userAccessDetails
else
respond_with 'Invalid credentials'
end
else
respond_with 'Failed'
end
else
respond_with 'No credentials provided'
end
结尾
如果有人能够帮助或指出我正确的方向,我将不胜感激。谢谢。