lib/drive_env/cli/auth.rb in drive_env-0.1.0 vs lib/drive_env/cli/auth.rb in drive_env-0.2.pre1

- old
+ new

@@ -2,44 +2,33 @@ require 'drive_env' module DriveEnv module Cli class Auth < Thor + OOB_URI = 'urn:ietf:wg:oauth:2.0:oob' + desc 'login', '' def login if !config.client_id abort "please set client_id: #{$0} config set client_id YOUR_CLIENT_ID" end if !config.client_secret abort "please set client_secret: #{$0} config set client_secret YOUR_CLIENT_SECRET" end - print("1. Open this page:\n%s\n\n" % auth.authorization_uri) + print("1. Open this page:\n%s\n\n" % authorizer.get_authorization_url(base_url: OOB_URI)) print("2. Enter the authorization code shown in the page: ") - auth.code = $stdin.gets.chomp - auth.fetch_access_token! - config.access_token = auth.access_token - config.refresh_token = auth.refresh_token - config.expires_at = auth.issued_at + auth.expires_in - config.save + + code = $stdin.gets.chomp + authorizer.get_and_store_credentials_from_code(user_id: DriveEnv::Config::DEFAULT_TOKEN_USER_ID, code: code, base_url: OOB_URI) end no_commands do def config @config ||= DriveEnv::Config.load(options[:config]) end - def auth - unless @auth - @auth = ::DriveEnv.client.authorization - @auth.client_id = config.client_id - @auth.client_secret = config.client_secret - @auth.scope = %w[ - https://www.googleapis.com/auth/drive - https://spreadsheets.google.com/feeds/ - ].join(' ') - @auth.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob' - end - @auth + def authorizer + DriveEnv.authorizer(config.client_id, config.client_secret, DriveEnv::Config::DEFAULT_TOKENS_STORE_FILE) end end end end end