[학습성과2] 이탈률 낮추기!간단한 로그인 기능 구현

4640 단어 초학자RubyRails
새로 로그인하고 로그인하는 것은 매우 번거로운 일이다.페이스북에 로그인하면 어디든 안심할 수 있는 것도 입력의 번거로움을 줄일 수 있기 때문이다.
우리 첫 번째 학자는 좋은 웹 기업에 진출하기 위해 투자조합을 만들었다.하지만 최선을 다해 만든 조합이라 내용이 보이지 않으면 슬프기도 하겠죠.
이 글에서는 앞으로 라일스를 통해 조합을 만들 사람을 대상으로 버튼을 누르면 로그인할 수 있는'퀵 로그인'기능을 구현하는 방법을 소개한다.

방법1: 숨겨진 매개 변수로 숨기기


일단 결론부터.로그인 단추를 표시하고 싶은 곳에 다음 코드를 기재하면 됩니다.
top.rb
<%= form_for(User.new, url:login_path) do |f| %>
  <%= f.hidden_field :email, value: "[email protected]" %>
  <%= f.hidden_field :password, value: "password" %>
  <%= f.submit "かんたんログイン", class:"btn btn-lg center-block btn-success"%> 
<% end %>
테스트 사용자의 정보를 param[:user]:password]에 넣기loginpath(sessions#create)로 보냅니다.hidden_필드의 내용이 표시되지 않고 외관상으로도 유창하기 때문이다.(소스에 기재되어 있다)

방법2: 서버에서 처리


테스트 세션 컨트롤러를 먼저 만듭니다.
$ rails g controller testsessions
라우트를 추가합니다.사용하는 동작은create뿐입니다.
routes.rb
resources :testsessions, only: :create
create 작업을 추가합니다.
testsessions_controller.rb
class TestsessionsController < ApplicationController
  def create
    user=User.find_by(email:"[email protected]")
    session[:user_id] = user.id
    flash[:success] = "テストユーザとしてログインしました。"
    redirect_to user
  end
end
컨트롤러에 정보를 넣는 느낌이에요.이렇게 하면 서버 측은 OK입니다.그리고 로그인 버튼을 표시하고 싶은 곳에 다음 코드를 쓰면 됩니다.클라스 좋아해요.
top.rb
<%= link_to 'かんたんログイン', testsessions_path, method: :post, class:"btn btn-lg btn-success center-block" %>
우리의 방법에서 테스트 사용자의 정보는 출처에 없다.사용자를 테스트할 때 플래시를 바꾸고 싶을 때 나는 이것이 비교적 좋다고 생각한다.
(보통 기존sessions controller 중if user.email=="[email protected]"...이렇게 하면 의견 차이가 생길 수 있지만 좀 뒤죽박죽이 될 수 있다.)

실화면


방법2가 이미 실현되었다.

주의


로그인 후 이메일과password가 변경되거나 퇴회되면 기능이 없습니다!신중을 기하기 위해서, 보기에서 이러한 기능을 변경하는 것을 표시하지 말고, 테스트 사용자 전용 필터를 설치하십시오.

더 많은 분들이 볼 수 있는 그룹이 됐으면 좋겠습니다!

좋은 웹페이지 즐겨찾기