benten login
目的
- ログイン認証を行います。
概要
- BENTENで各種APIでの利用を行うために認証手続きを行います。
- 所定のアカウント名とパスワードを用いてログインを行います。
- データ登録を行う際にはデータ登録用のグループアカウント(ビームラインアカウント等)を使います。
- 例: BL14B2
- データ検索・取得を行う際にはユーザー用アカウントを使ってもよいです。
- 例: 1234567
- データ登録を行う際にはデータ登録用のグループアカウント(ビームラインアカウント等)を使います。
- ログインの結果、取得したアクセストークンは他のBENTENのAPIを利用する際に要求されます。
Warning
アクセストークンの有効期限は1日です。1日以上ログインを有効にする際にはリフレッシュトークンを用いてrefresh_tokenのAPIによりアクセストークンを再生成し、アクセストークンの有効期限の延長を行ってください。
利用例
- Help
$ benten.py login -h usage: benten login [-h] --username USERNAME [--password PASSWORD] optional arguments: -h, --help show this help message and exit --username USERNAME, -u USERNAME username --password PASSWORD, -p PASSWORD password
- アクセストークン取得 : 手動でパスワード入力(推奨)
$ benten.py login -u BL14B2 input password: xxxxx ### benten login ### ==> response (output to /xxxxx/.benten/auth_info.json) --> filename = /xxxxx/.benten/auth_info.json { "access_token":"37d1de33b6ed4ce59ff8c114fd17c5de", "refresh_token":"28fa9fb14dd04912b33ef1a14bbb56dc", "expires_in":86400, "expires_time":1552440434 }
- アクセストークン取得 : 引数でパスワード入力(非推奨)
$ benten.py login -u BL14B2 -p xxxxx ### benten login ### ==> response (output to /xxxxx/.benten/auth_info.json) --> filename = /xxxxx/.benten/auth_info.json { "access_token":"13a9572ae39a469e853b824b2c189701", "refresh_token":"9506da2775bb486da72c979ca89dcdce", "expires_in":86400, "expires_time":1552440570 }
Pythonモジュールとの対応
- benten_client.rest_auth.Loginを利用
- 利用例 (example/benten_login.pyから)
#!/usr/bin/env python ''' example: login usage: python benten_login.py [username] [password] ''' import benten_client import argparse from logging import getLogger, StreamHandler, DEBUG logger = getLogger(__name__) handler = StreamHandler() handler.setLevel(DEBUG) logger.setLevel(DEBUG) logger.addHandler(handler) logger.propagate = False # ... parameters parser = argparse.ArgumentParser(description="example: login") parser.add_argument("username", help="username") parser.add_argument("password", help="password") args = parser.parse_args() logger.debug("# benten login with username, password") username = args.username password = args.password v = {} v["username"] = username v["password"] = password repo = benten_client.Repository() ret_dict = repo.auth.login.post(**v) # save auth : required to fetch access_token/refresh_token after benten_client.save_auth(ret_dict)