[Rails] devise を利用 ゲストユーザー機能( ポートフォリオ 用)
初めに
ポートフォリオ用のWebサイトには必須と言われるゲストユーザーログイン機能。
deviseを使用したゲストログイン機能について紹介します。
前提として
deviseの導入が完了している事
以下が参考記事となります。
・ https://qiita.com/ShinyaKato/items/a098a741a142616a753e
ゲストログイン機能の実施
config.routes.rb
# 以下を追加
devise_for :users, :controllers => {
registrations: 'users/registrations',
sessions: 'users/sessions'
}
devise_scope :user do
post 'users/guest_sign_in', to: 'users/sessions#new_guest'
end
app.controllers.users.sessions.controller.rb
#以下を追加
def new_guest
user = User.find(1)
user.update(email: '[email protected]',name: 'ゲストユーザー') do |user|
user.password = SecureRandom.urlsafe_base64
end
sign_in user
redirect_to root_path
end
app.views.tweets.index.html.haml
#以下を追加
.guest
= link_to users_guest_sign_in_path, method: :post, class:"guest__btn" do
ゲスト
ポイント
・deviseのsign_inメソッドを用います。
・find_byを用いる事でゲストユーザーをあらかじめ作成する手間を省けます。
・パスワードをSecureRandom.urlsafe_base64を使用する事でパスワードをランダムに作成します。これによってGitHubにソースコードをあげる場合等にパスワードの漏洩を防ぐ事ができます。
補足
私が紹介した内容はあくまでゲストユーザーを登録する方法になります。
仮にアカウント削除機能やパスワードの変更を防ぎたいのであれば別途今まで紹介した内容にプラスで設定が必要です。
Author And Source
この問題について([Rails] devise を利用 ゲストユーザー機能( ポートフォリオ 用)), 我々は、より多くの情報をここで見つけました https://qiita.com/DogK0625/items/2e637402719ca6091b2d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .