class MyBitcasa::LoginEngine::Pure

MyBitcasa::LoginEngine::Pure is not work.

Attributes

Public Class Methods

available?() click to toggle source
# File lib/my_bitcasa/login_engine/pure.rb, line 41
def available?
  false
end
new(connection=nil) click to toggle source
# File lib/my_bitcasa/login_engine/pure.rb, line 11
def initialize(connection=nil)
  @connection = connection
end

Public Instance Methods

login(user, password) click to toggle source
# File lib/my_bitcasa/login_engine/pure.rb, line 15
def login(user, password)
  # login form
  res = @conn.get_without_loggedin("/login")

  csrf_tag = res.body.match(/<input [^<>]*name="csrf_token"[^<>]*>/){|m| m[0]}
  raise ResponseFormatError, "csrf_token tag is not found" unless csrf_tag

  csrf_token = csrf_tag.match(/value="([^"]+)"/){|m| m[1]}
  raise ResponseFormatError, "csrf_token is not found" unless csrf_token

  # login post
  res = @conn.post_without_loggedin("/login", {
    user: user,
    password: password,
    csrf_token: csrf_token,
    redirect: "/",
  })

  if res.env[:url].path.start_with?("/login")
    raise AuthorizationError, "login failure"
  end

  @cookie = res.headers["set-cookie"]
end