module Mobile module Apis class Auth < Grape::API resource :auth do desc "Creates and returns access_token if valid login" params do requires :login, type: String, desc: 'Username or email' requires :password, type: String, desc: 'Password' end post :login 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) data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) {status: 0, data: data} else {status: 1, message: 'Unauthorized.'} end end end end end end