{"id":2805,"date":"2015-09-22T16:37:09","date_gmt":"2015-09-22T14:37:09","guid":{"rendered":"https:\/\/sgaul.de\/?p=2805"},"modified":"2015-09-21T14:53:00","modified_gmt":"2015-09-21T12:53:00","slug":"activeadmin-authentifizierung-fuer-browser-und-api","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2015\/09\/22\/activeadmin-authentifizierung-fuer-browser-und-api\/","title":{"rendered":"ActiveAdmin: Authentifizierung f\u00fcr Browser und API"},"content":{"rendered":"

Eine einfache API-Authentifizierung l\u00e4sst sich in ActiveAdmin durch Wiederverwendung des Standard-Admin-Users im Initializer erreichen:<\/p>\n

 # config\/initializers\/active_admin.rb\r\n ActiveAdmin.setup do |config|\r\n   config.prepend_before_filter do\r\n     if active_admin_config.namespace.name == :api\r\n       authenticate_or_request_with_http_basic('API') do |name, password|\r\n         user = AdminUser.find_by_email!(name)\r\n         sign_in(:admin_user, user) if user.valid_password?(password)\r\n       end\r\n     end\r\n   end<\/pre>\n

Dies erlaubt die Angabe des Benutzernamens und Passworts im Browser als Popup (HTTP-Basic-Authentication) und als Header f\u00fcr APIs:<\/p>\n

curl -u admin@example.com:password http:\/\/localhost:3000\/api\/my_resources.json<\/pre>\n

<\/p>\n

Will man dies mit Capybara ohne JS testen, hat sich f\u00fcr mich der folgende Ansatz bew\u00e4hrt:<\/p>\n

page.driver.browser.basic_authorize(user.email, user.password)\r\nvisit api_my_resources_path<\/pre>\n

Bei anderen Treibern (zum Beispiel bei Verwendung von Javascript) kann die Schnittstelle abweichen<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"

Eine einfache API-Authentifizierung l\u00e4sst sich in ActiveAdmin durch Wiederverwendung des Standard-Admin-Users im Initializer erreichen: # config\/initializers\/active_admin.rb ActiveAdmin.setup do |config| config.prepend_before_filter do if active_admin_config.namespace.name == :api authenticate_or_request_with_http_basic(‚API‘) do |name, password| user = AdminUser.find_by_email!(name) sign_in(:admin_user, user) if user.valid_password?(password) end end end Dies erlaubt die Angabe des Benutzernamens und Passworts im Browser als Popup (HTTP-Basic-Authentication) und als Header… ActiveAdmin: Authentifizierung f\u00fcr Browser und API<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[608,612,527,553,570,552],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2805"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=2805"}],"version-history":[{"count":2,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2805\/revisions"}],"predecessor-version":[{"id":2807,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2805\/revisions\/2807"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=2805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=2805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=2805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}