認証が失敗した際に別の URL にリダイレクトしたいと考えています。
ご存知の方がいらっしゃれば、ご教示いただけますと幸いです!
plugins
myplugin
lib
auth
my_auth_controller.rb
def after_authenticate(auth_hash)
unless auth
redirect_to "https://example.com"
end
result = Auth::Result.new
end
nehakakar
(nehakakar)
2
- コードには if not auth という条件がありますが、対応する else ステートメントがありません。
- redirect_to メソッドは、コントローラーのアクション内で使用する必要があります。after_authenticate のような別のメソッドで使用している場合は、コントローラーのスコープ内にあることを確認してください。
したがって、正しいコードは次のようになります。
def after_authenticate(auth_hash)
if not auth
redirect_to "https://example.com"
else
# 認証が成功した場合、認証プロセスを続行します
result = Auth::Result.new
end
end
結果として、認証が失敗した場合(auth が true でない場合)は、「https://example.com」にリダイレクトされます。それ以外の場合(認証が成功した場合)は、認証プロセスが続行されます。
確認するには、ブラウザの開発者ツールでネットワークリクエストとリダイレクトを確認するか、redirect checker のようなオンラインツールを使用して、リダイレクトの問題とステータスコードを特定してください。