Authentication for Lotus app
White

My Mai viết ngày 08/01/2016

Lần trước thì anh Trung có viết bài viết về Thêm vào authentication cho Lotus app để làm chức năng login cho Lotus app.
Bài viết này mình cũng làm chức năng login/logout nhưng bằng cách sử dụng session.

Session là gì

Nói nôm na session như là 1 nơi để bạn có thể lưu trữ dữ liệu. Các ứng dụng web application yêu cầu khi user login phải dùng session có nghĩa là session sẽ lưu user qua user_id.

Trong Lotus định nghĩa session như thế nào

Session có được định nghĩa sẵn trong Lotus nhưng nó không được kích hoạt sử dụng theo mặc định, muốn sử dụng thì các bạn phải comment out sessions :cookie, secret: ENV['ADMIN_SESSIONS_SECRET'] trong file application.rb

ví dụ
Tại Admin app
lotus g action admin
File apps/web/application.rb bạn comment out dòng

module Admin
  class Application < Lotus::Application
    configure do
      # ...
      sessions :cookie, secret: ENV['ADMIN_SESSIONS_SECRET']
    end
  end
end

Áp dụng session cho app

Như đã nói ở trên chúng ta sẽ sử dụng session cho việc log-in/log-out 1 user
Việc login được thể hiện như thế nào?

  • Có 1 form login để nhập email & password
  • Sau khi bạn nhấn button submit sẽ bắt đầu đi kiểm tra.

Để sử dụng session để lưu lại user bạn chỉ cần lưu lại user_id của user đó

session[:user_id] = user.id

Sau đó bạn sẽ viết 1 module cho session authentication để apply session. module này có tên là SessionAuthentication. nó sẽ được viết trong file apps/admin/application.rb

module SessionAuthentication
  def save_user_to_session(user)
    session[:user_id] = user.id
  end
    ...
end

Khi bạn submit form đăng nhập bạn chỉ cần gọi method save_user_to_session(user)này để thực hiện việc save user_id vào session được thực hiện

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

My Mai

33 bài viết.
165 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
21 8
Lotus là gì? (Link) là một Ruby Web Framework mới với chú trọng vào cấu trúc tách rời với thiết kế đơn giản và dễ hiểu. Hiện tại thì Lotus vừa re...
My Mai viết gần 3 năm trước
21 8
White
18 21
Bạn muốn load 3 image khác nhau (Ý mình ở đây là dùng tag không phải background nhé) cho 3 loại màn hình khác nhau (small, medium, large). Bạn sẽ l...
My Mai viết gần 3 năm trước
18 21
White
18 7
Tham gia cộng đồng Thoáng đó cũng đã 2 năm từ lúc tớ tham gia cộng đồng Ruby Việt Nam. Giờ ngồi ngẫm lại được gì và mất gì :v Thật thì chẳng mất...
My Mai viết hơn 1 năm trước
18 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
33 bài viết.
165 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!