socialforge/app/api/mobile/apis/auth.rb

47 lines
1.1 KiB
Ruby
Raw Normal View History

2014-11-27 19:43:04 +08:00
module Mobile
2014-12-09 16:36:43 +08:00
module Entities
class Auth < Grape::Entity
expose :token
expose :user, using: User
end
end
module Apis
class Auth < Grape::API
resource :auth do
2014-12-10 15:11:10 +08:00
desc "用户登录"
params do
requires :login, type: String, desc: 'Username or email'
requires :password, type: String, desc: 'Password'
end
2014-12-10 15:11:10 +08:00
post do
user,last_logon = ::User.try_to_login(params[:login], params[:password])
if user
::ApiKey.delete_all(user_id: user.id)
key = ::ApiKey.create!(user_id: user.id)
2014-12-09 16:57:08 +08:00
api_user = ::UsersService.new.show_user({id:user.id})
present :data, {token: key.access_token, user: api_user}, using: Entities::Auth
2014-12-09 16:36:43 +08:00
present :status, 0
else
{status: 1, message: 'Unauthorized.'}
end
2014-11-27 19:43:04 +08:00
end
2014-12-10 15:11:10 +08:00
desc "用户登出"
params do
2014-12-10 16:23:56 +08:00
requires :token, type: String
2014-12-10 15:11:10 +08:00
end
delete do
authenticate!
::ApiKey.delete_all(user_id: current_user.id)
{status: 0}
end
2014-11-27 19:43:04 +08:00
end
end
end
end