質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

解決済

2回答

688閲覧

Ruby on railsでログイン機能がうまく作れない

退会済みユーザー

退会済みユーザー

総合スコア0

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2020/06/09 06:38

前提・実現したいこと

「has_secure_password」と「devise」を使うとほかの問題が発生してしまうのでその2つは使いません。
Ruby on Railsでログイン機能を実装することが実現したいことです。

発生している問題

ログインボタンを押すと「ログイン失敗:メールアドレスまたはパスワードもしくはその両方が間違っています」というログイン失敗フラッシュメッセージが表示される。

エラーメッセージ

ログイン失敗:メールアドレスまたはパスワードもしくはその両方が間違っています

(フラッシュメッセージです。)

該当のソースコード

app/controllers/session_controller.rb

class SessionController < ApplicationController def new end def create @user = User.find_by(email: params[:email], password: params[:password]) if @user flash[:notice] = "ログインしました" redirect_to("/") else flash[:alert] = "ログイン失敗:メールアドレスまたはパスワードもしくはその両方が間違っています" render action: :new end end end

app/views/session/new.html.erb

<h2>ログイン</h2> <%= form_for :@user,:url => {controller: "session", action: "create" } do |f| %> <%= f.email_field :email, autofocus: true, autocomplete: "email" %> <%= f.password_field :password, autocomplete: "current-password" %> <%= f.submit "ログイン!" %> <% end %>

補足情報

Windows 10 home 64ビット
ruby 2.6.6
Ruby on rails 6.0.3.1
PostgreSQL 12.3
テキストエディタ Atom

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ruby

1User.find_by(email: params[:email], password: params[:password])

このような実装は、不適切です。

  • パスワードをハッシュ化している場合、生パスワードで検索しても一致しません。
  • 生パスワードをデータベースに格納する…というのは、それ自体取るべきではない構造です。

投稿2020/06/09 06:43

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/09 07:42

has_secure_passwordを使ってパスワードをハッシュ化してみます。
guest

0

ベストアンサー

投稿2020/06/10 00:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問