module Wpxf::WordPress::Login
Provides functionality required to login to WordPress
.
Public Instance Methods
wordpress_login(user, pass)
click to toggle source
Log in to WordPress
and return the session cookies. @param user [String] the username. @param pass [String] the password. @return [Array, nil] an array of cookies if the login is successful,
otherwise, returns nil.
# File lib/wpxf/wordpress/login.rb, line 38 def wordpress_login(user, pass) res = _execute_wp_login_request(user, pass) if res&.cookies return res.cookies if valid_wordpress_cookie?(res.cookies.to_s) end nil end
wordpress_login_post_body(user, pass)
click to toggle source
Build a request body string for a WordPress
login request. @param user [String] the username. @param pass [String] the password. @return [String] the request body.
# File lib/wpxf/wordpress/login.rb, line 9 def wordpress_login_post_body(user, pass) redirect = Wpxf::Utility::Text.rand_alpha(10) builder = Wpxf::Utility::BodyBuilder.new builder.add_field('log', user) builder.add_field('pwd', pass) builder.add_field('redirect_to', normalize_uri(target_uri, redirect)) builder.add_field('wp-submit', 'Login') builder.create do |body| return body end end
Private Instance Methods
_execute_wp_login_request(user, pass)
click to toggle source
# File lib/wpxf/wordpress/login.rb, line 50 def _execute_wp_login_request(user, pass) res = nil scoped_option_change('follow_http_redirection', false) do res = execute_post_request( url: wordpress_url_login, body: wordpress_login_post_body(user, pass) ) end res end