Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
![[*Rails*] deviseã®ä½¿ãæ¹ï¼rails6çï¼ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ecebe5eb0de21a208d36f3cd26ee10df19659f52/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGNDg5MTIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2OTE1MjQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9MTE5MzRkZDI2YjcxNjJmYzVkMzQwYTYyMWZmMzQ5ZjY%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Dc57db135e15888567961a96620540bea%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCJTJBUmFpbHMlMkElNUQlMjBkZXZpc2UlRTMlODElQUUlRTQlQkQlQkYlRTMlODElODQlRTYlOTYlQjklRUYlQkMlODhyYWlsczYlRTclODklODglRUYlQkMlODkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1mNTc5NDlhZTM1NmUxOWM5NjMzMTIzNGQ1NzBjODIxZg%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBjaWdhbGVjaWdhbGVzJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9MGQwMTI3YzkzZDQ4MWZlZmFiMjhjYTU2NTY2ZWVkYjQ%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D68a2000da0fd57e2ecd193d4b1d362a5)
ã¢ãã«ã®ã¬ã³ã¼ããä½ã£ãã¯ã©ã¤ã¢ã³ãã®æ å ±ãä¿åãããå ´åãªã©ï¼modelããrequest夿°ã®ä¸èº«ã使ãããã¨ããããï¼ ãã¨ãã°ï¼ã¯ã©ã¤ã¢ã³ãã®IPã¢ãã¬ã¹ãUser-Agentãä¿åãããå ´åãªã©ï¼çµæ§ããããå ´é¢ãããï¼ ä»¥ä¸ï¼request夿°ï¼é常ã¯ã³ã³ããã¼ã©ãããã触ããªãï¼ï¼ãã¢ãã«ãã使ãããå ´åã®ããæ¹ï¼ class ApplicationController < ActionController::Base (çç¥) before_filter :set_request_filter def set_request_filter Thread.current[:request] = request end end ã¢ãã«å ã§ï¼ request = Thread.current[:request] ã¨ãã¦åå¾ã§ããï¼ ä»¥ä¸ã®ãããªããæ¹ãæ å ±ã¨ãã¦ã¯è¦ããããï¼ã°ã
ã¯ããã« Deviseãããããã¦ããRailsã®ã¢ããªã±ã¼ã·ã§ã³ã§ããã¼ã¿ãã¼ã¹ã«ã¦ã¼ã¶ã¼ã®ã¬ã³ã¼ãã¯ããããã®ã¦ã¼ã¶ã¼ã«ã¯ãã°ã¤ã³ãããããªãæã«ããå®è£ ãããæ©ä¼ããã£ããã¯ãã㯠authenticate_user! ã¡ã½ããã䏿¸ããããã¨ããããå°ã調ã¹ãçµæ active_for_authenticatation? ã¨ããã¦ã¼ã¶ã¼ã¢ãã«ã®ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããã䏿¸ãããã®ãè¯ããã¨ã«æ°ã¥ããã以ä¸ã«å®éã«ç¹å®ã®æ¡ä»¶ã®ã¦ã¼ã¶ã¼ã®ãã°ã¤ã³ãä¸å¯ã«ããå®è£ ã¨ãã®éã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®è¨å®ã®ä»æ¹ãæ¸ããã åç §: How To: Customize user account status validation when logging in Module: Devise::Models::Authenticatable å®è£ ä¾: - Userã¢ãã«ã«ããã¤ã¹ãã¤ã³ã¹ãã¼ã«ãã¦ãã
æè¿ããã¼ãã§ã¯ãRuby on Railsã®å¢è£æ¹è¨çããªãªã¼ã¹ããã¦ããã ãã身ãªã®ã§ãä¹ ãã¶ãã«Railsã«ã¤ãã¦æ¸ãã¦ã¿ããã¨æãã ã¾ããæ¸ç±ã®å®£ä¼ã¿ãããªãã®ã§ãã æ°æ¥åã«ãnoteã¨ãããµã¼ãã¹ã§Webããã³ãå´ã«æç¨¿è ã®IPã¢ãã¬ã¹ãé²åºããã¨ããæ¼æ´©äºæ ãèµ·ãã¾ããããããã©ããããåé¡ãã¯ä¸æ¦ç½®ãã¦ããã¦ã使 ãããããã¨ã«ãªãã®ããããã¦Railsã§ãã使ãããdeviseã¨ããèªè¨¼æ©æ§ä½æã©ã¤ãã©ãªã®ããè¯ãä½¿ãæ¹ã«ã¤ãã¦è©±ããã¦ããã¾ãã (noteãRailsã使ã£ã¦ããããããã§è©±ãããdeviseãæ¡ç¨ãã¦ãããã¯å®ãã§ã¯ãªãã®ã§ãããããå ã®è©±ã¯ãã®äºæ ã¨ã¯ç´æ¥é¢ä¿ããã¾ãããRailsã ã£ãã¨ãã¦ãæãã使ã£ã¦ãªããå¤ãªä½¿ãæ¹ãã¦ãã¨æããã§ãããçç±ã¯å¾è¿°) 使 ãããªãã¨ãèµ·ããã®ã ãããããããã³ãå´ã«ä½æ IPã¢ãã¬ã¹ãéã£ã¦ãã ãã¨ãã話ã§ã
ã¯ããã« å æ¥ãã¨ããAPIã使ãã¦ããã¨ãã« éçºç°å¢ã§ã¯ãhttp://localhost:3000/api/users/1ã®ããã«ããã¹ã®æåã«apiãã¤ããã æ¬çªç°å¢ã§ã¯ãhttp://api.example.com/users/1ã®ããã«ãapiã¨ãããµããã¡ã¤ã³ãå©ç¨ãããããã¹å ã®apiã¯ä¸è¦ã ã¨ããã«ã¼ãã£ã³ã°ããããªãã¦ã¯ãããªããªã£ãã®ã§ãè²ã 調ã¹ã¦ã¿ã¾ããã å®è£ ä¾ å ã«å®æå½¢ã示ãã¾ãããããè¦ãã°ã ãããããããã¨ã # config/routes.rb constraints Subdomain::Api do namespace :api, path: Subdomain::Api.path do resources :users end end # lib/subdomain/api.rb module Subdomain class Api def
æ¥è¨å¸³ã§ãã deviseã§ã¡ã¼ã«ã¢ãã¬ã¹ã¨ãã¹ã¯ã¼ã以å¤ã« ã¦ã¼ã¶ã¼è³æ ¼ï¼@user.qualificationï¼ãããã¦ã¼ã¶ã¼ã¨ããæ¡ä»¶ãå ãã¦ãã°ã¤ã³ããããå ´å # config/initializer/devise.rb Devise.setup do |config| # ä¸ç¥ config.warden do |manager| manager.default_strategies(scope: :user).unshift :login_with_qualification # 追å ããstrategyå end end # config/initializer/warden_strategy.rb Warden::Strategies.add(:login_with_qualification) do # ãã®strategyãé©ç¨ãããã©ãã def valid? pa
æ°ããRailsã¢ããªãä½ããã³ã«ãã£ã¦ããæ°ãããã®ã§ã䏿¦ã¾ã¨ãã¦ãããã¨æãã¾ãã ä»åå ¬éããæé ã¯ãå餿¸ã¿ã®ã¡ã¼ã«ã¢ãã¬ã¹ã§åç»é²å¯è½ãªè«çåé¤ã®å®è£ æ¹æ³ã§ãã Deviseã¨ã¯ï¼ Deviseã¯ã¢ã«ã¦ã³ãèªè¨¼ç®¡çã®gemã§ããWebã¢ããªã±ã¼ã·ã§ã³ã«ã»ã¼å¿ é ã§ããèªè¨¼æ©è½ãã»ã¼ç¶²ç¾ ãã¦ãã¾ãã ã¢ã«ã¦ã³ãã®æ°è¦ä½æ ã¡ã¼ã«ã¢ãã¬ã¹ã®ç¢ºèª ãã¹ã¯ã¼ãå¿ãã®åãåãã ãã¹ã¯ã¼ãééãããããã¢ã«ã¦ã³ããã㯠ãã®ä»è«¸ã github.com è«çåé¤ã¨ã¯ï¼ è«çåé¤ã¨ã¯ãã¬ã³ã¼ãã¯ç©ççã«åé¤ããªãããã©ãå餿¸ã¨ãããã¨ã«ãããã¨ãããã¨ã§ãã ç©ççã«åé¤ãã¦ãã¾ãã¨ããã®ã¢ã«ã¦ã³ãã«ç´ã¥ãããã¼ã¿ãå ¨ã¦åé¤ããã¦ãã¾ã£ããããã¼ã¿ã«ç´ã¥ãã¦ããã¦ã¼ã¶ã誰ã ã£ããããããªããªããå°ã£ããã¨ã«ãªãã¾ãã ããã§ãè«çåé¤ãããã¨ã§ããã°ã¤ã³ã¯ã§ããªãããã©é¢é£ãã¼ã¿ã表示ãã
ä¹ ä¿ç°ã§ãã æè¿ãdeviseã®ã¹ãã©ãã¸ã¼(ãã©ã°ã¤ã³çãªãã®)ã社å ã®èªè¨¼ã·ã¹ãã ç¨ã«ä½ãã¾ããã ãã®æãå¤ãæ å ±ãå¤ããåæ³£ãã«ãªããªããããããæ¨¡ç´¢ãã¦ä½ã£ãã®ã§ã åå¿é²ãã¦ããåããå°ã人ãããªããªãããã«è¨äºã«ãã¾ãã devise Railsã§èªè¨¼ã¤ãã®ã¢ããªã±ã¼ã·ã§ã³ã使ãããã¨ã®ãã人ãªãå¿ ã使ã£ããã¨ã®ããgemã ã¨æãã¾ãã ããªãå å®ããã©ã¤ãã©ãªã§ããã©ã«ãã§ãããããã¿ã¼ã³ã®ã¹ãã©ãã¸ã¼ã¯å ¥ã£ã¦ããã®ã§ãåºæ¬çã«ã¯ãã®ã¾ã¾ä½¿ããã¨ãã§ãã¾ãã ã¹ãã©ãã¸ã¼ deviseã§ã¯ã¹ãã©ãã¸ã¼ã¨ããèªè¨¼ã®ã«ã¼ã«ãè¨å®ãããã¨ã§ãå¿ è¦ãªæ©è½ã ãã享åãããã¨ãã§ãã¾ãã ä¾ãã°ãdbèªè¨¼ãããããæã¯ã class User < ApplicationRecord devise :database_authenticatable # ... end ããã¯æ©è½ãã¤
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}