0.0
Low commit activity in last 3 years
No release in over a year
Login amazon.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

AmazonAuth

Gem Version CircleCI

Sign In Amazon using Capybara and Selenium

amazon_auth_login

Recorded with Recordit

Installation

Add this line to your application's Gemfile:

gem 'amazon_auth'

And then execute:

$ bundle

Or install it yourself as:

$ gem install amazon_auth

Requirements

  • chromedriver

Before running, you need to download chromedriver.
And you may need to update chromedriver regularly.
Please download latest chromedriver_xxx.zip from https://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH.

mv ~/Downloads/chromedriver /usr/local/bin/

Usage

Set Amazon credentials on your local machine

[Quick] You can set login and password in console.

[Recommended] Or you can convert them to protect them against shoulder surfing. Run amazon_auth and paste the output to .env. (AMAZON_USERNAME_CODE , AMAZON_PASSWORD_CODE and AMAZON_CODE_SALT)

amazon_auth_setup

envchain for security

You can store environment variables in macOS Keychain instead of dotenv. Check out envchain

brew install envchain

envchain --set amazon AMAZON_DOMAIN AMAZON_USERNAME_CODE AMAZON_PASSWORD_CODE AMAZON_CODE_SALT

# Run console with envchain
envchain amazon bin/console
envchain amazon bundle exec irb
envchain amazon rails console

Run

In console, you can move around pages using Capybara DSL

# Without credentials in .env
client = AmazonAuth::Client.new(login: 'your_amazon_email', password: 'your_amazon_password')

# With credentials in .env
client = AmazonAuth::Client.new

# Sign in
client.sign_in

# Continue to the page for Kindle
link = client.links_for('#navFooter a').find{|link| link =~ %r{/gp/digital/fiona/manage/} }
client.session.visit link

Use amazon site in different domain

Set AMAZON_DOMAIN in .env.

e.g. AMAZON_DOMAIN=amazon.co.jp for Japanese site

Keep cookies

Using capybara-sessionkeeper gem

client = AmazonAuth::Client.new(keep_cookie: true, debug: true)

You can change Capyabra.save_path when it isn't set

client = AmazonAuth::Client.new(keep_cookie: true, save_path: 'tmp/cookies', debug: true)

Logging

Normal logging

client = AmazonAuth::Client.new(verbose: true)

More logging (This includes session.current_url)

client = AmazonAuth::Client.new(debug: true)

Use Firefox

In console,

client = AmazonAuth::Client.new(driver: :firefox)

Development

Use .env.development instead of .env in development.

git clone https://github.com/kyamaguchi/amazon_auth.git
cd amazon_auth
bundle

./exe/amazon_auth
vi .env.development

rspec

./bin/console

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kyamaguchi/amazon_auth.

License

The gem is available as open source under the terms of the MIT License.