API login/logout with http header token

This commit is contained in:
Min Zeya Phyo
2017-04-14 23:22:58 +06:30
parent db75780267
commit 5ca9615e38
11 changed files with 47 additions and 22 deletions

View File

@@ -10,5 +10,4 @@ class Api::ApiController < ActionController::API
return token
end
end
end

View File

@@ -1,9 +1,36 @@
class Api::AuthenticateController < ActionController::API
class Api::AuthenticateController < Api::ApiController
skip_before_action :authenticate
def create
emp_id = params[:emp_id]
password = params[:password]
if emp_id && password
@employee = Employee.login(emp_id, password)
if @employee
render json: JSON.generate({:status => true, :session_token => @employee.token_session, :name => @employee.name, :role => @employee.role})
else
render json: JSON.generate({:status => false, :error_message => "Bad Emp_ID or Password."})
end
else
render json: JSON.generate({:status => false, :error_message => "Input Parameters missing."})
end
end
def destroy
logout_status = Employee.logout(params[:session_token])
if logout_status
render json: JSON.generate({:status => true})
else
render json: JSON.generate({:status => false, :error_message => "Session Token Invalid or Missing"})
end
end
def authenticate_params
params.permit(:emp_id, :password, :session_token)
end
end

View File

@@ -1,4 +1,4 @@
class Api::Restaurant::MenuController < ActionController::API
class Api::Restaurant::MenuController < Api::ApiController
before :authenticate_token
#Description
@@ -7,7 +7,7 @@ class Api::Restaurant::MenuController < ActionController::API
def index
menu_detail()
end
#Description
# This API show current order details
# Input Params - menu_id

View File

@@ -1,4 +1,4 @@
class Api::Restaurant::RoomsController < ActionController::API
class Api::Restaurant::RoomsController < Api::ApiController
before_action :set_room, only: [:show]
def index

View File

@@ -1,4 +1,4 @@
class Api::Restaurant::SeatingsController < ActionController::API
class Api::Restaurant::SeatingsController < Api::ApiController
before_action :set_table, only: [:show]
def index

View File

@@ -1,4 +1,4 @@
class Api::Restaurant::TakeawaysController < ActionController::API
class Api::Restaurant::TakeawaysController < Api::ApiController
def index
render json: SeatTable.order("order_by")
end

View File

@@ -1,7 +1,7 @@
class Api::Restaurant::ZonesController < ActionController::API
class Api::Restaurant::ZonesController < Api::ApiController
def index
render json: Zone.includes([:tables, :rooms]).where("is_active = true")
end
end

View File

@@ -1,5 +1,6 @@
module TokenVerification
extend ActiveSupport::Concern
include ActionController::HttpAuthentication::Token::ControllerMethods
included do
before_action :authenticate
@@ -15,14 +16,9 @@ module TokenVerification
def authenticate_token
authenticate_with_http_token do |token, options|
#@current_user = User.find_by(api_key: token)
@device_access = DeviceAccess.find_by_token(token)
if @device_access
@log = DeviceAccessLog.new
@log.device_access = @device_access
@log.api_route = request.env['PATH_INFO']
@log.remote_ip = request.remote_ip
# @log.client_info =
@log.save
@user = Employee.authenticate_token(token)
if @user
#Maybe log - login?
end
end