3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゲストログイン機能

Posted at

##環境
Rails 6.1.3
MySQL
##ゲストログイン機能の設定

routes.rb
 get '/guest_session' => 'guest_sessions#new_guest'
guests_essions_controller.rb
class GuestSessionsController < ApplicationController
  def new_guest
    user = User.find_or_create_by(email: 'guest@exapmle.com') do |user|
      user.password = SecureRandom.urlsafe_base64
      user.name = 'ゲストユーザー'
    end
    session[:user_id] = user.id
    flash[:notice] = 'ゲストユーザーとしてログインしました'
    redirect_to('/posts/index')
  end
end

##解説
####・find_or_create_byでゲストユーザーをあらかじめ作成する手間を省きます。またメールアドレスを'guest@exapmle.com'で固定します。
####・ user.password = SecureRandom.urlsafe_base64はuserのパスワードをA-Z, a-z, 0-9, “-” and “_” **の中からランダムで作成します。ランダムで生成するのはパスワードを特定されると,ユーザー編集ページからメールアドレス・パスワードを変更される可能性があるためです。
####・nameを'ゲストユーザー'で固定します。
##参考記事
[Ruby 2.x] SecureRandom を利用した乱数の生成方法
ゲストログイン機能の追加
簡単ログイン・ゲストログイン機能の実装方法(ポートフォリオ用)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?