我想使用grape来验证API。对于身份验证,我使用了Devise gem。我尝试将devise :: sessioncontroller包含到我的葡萄api文件中,但这是caput。
class SignIn < BaseAPI
resource :sign_in do
desc 'Sign in page'
params do
requires :username, type: String
end
post do
User.authenticate(params)
end
end
end
答案 0 :(得分:0)
尝试以下代码。您应该能够进行身份验证。您需要设置一些额外的东西。遵循this文档以了解更多详细信息。
resource :sign_in do
desc "Authenticate user"
params do
requires :login, type: String
requires :password, type: String
end
post :login do
user = User.find_by_email(params[:login].downcase)
if user && user.authenticate(params[:password])
token = TokenGenerator.create(user_id: user.id)
{token: token.access_token}
else
error!('Unauthorized.', 401)
end
end
end