Create session with Devise in web API on ruby on rails -
i'm trying make login system project using devise, chose him, because project have access , http api.
for can register user using following method of registration class:
def create if userservice.create_user(params[:username], params[:email]) @user = user.new(user_params) if @user.save render json: @user, status: :created return end render json: @user.errors, status: :unprocessable_entity return end render json: "exit", status: :unprocessable_entity end
and model of user note has things devise adds:
class user < activerecord::base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :schedules end
my problem in session class because can not find include devise::internalhelpers
:
class api::sessionscontroller < devise::sessionscontroller prepend_before_filter :require_no_authentication, only: [:create] include devise::internalhelpers before_filter :ensure_params_exist def create build_resource resource = user.find_for_database_authentication(email: params[:email]) return invalid_login_attempt unless resource if resource.valid_password?(password: params[:password]) sign_in("user", resource) render(json: {success: true, auth_token: resource.auth_token, login: resource.email}) return end invalid_login_attempt end def destroy sign_out(resource_name) end protected def ensure_params_exist return unless params[:email].blank? render(json: {success: false, message: "missing email parameter"}, status: 422) return unless params[:password].blank? render(json: {success: false, message: "missing password parameter"}, status: 422) end def invalid_login_attempt warden.custom_failure! render(json: {success: false, message: "error login or password"}, status: 401) end private def create_params params.permit(:email, :password) end end
another problem time creates user not generating token, should work?
well mistakes how internalhelpers api?
devise::internalhelpers
has been removed. should include devise::controllers::helpers instead:
class api::sessionscontroller < devise::sessionscontroller prepend_before_filter :require_no_authentication, only: [:create] include devise::controllers::helpers ...
Comments
Post a Comment