我有以下内容:
@auth.verify_password
def verify_password(username_or_token, password):
logger = logging.getLogger('__name__')
logger.error('username = %s' %username_or_token)
# first try to authenticate by token
user = USER.verify_auth_token(username_or_token)
if not user:
with contextlib.closing(DBSession()) as session:
try:
# try to authenticate with username/password
user = session.query(USER).filter_by(USERSEMAIL = username_or_token).first()
if not user or not user.verify_password(password):
return False
except exc.SQLAlchemyError, error:
session.rollback()
raise_database_error(error)
g.user = user
return True
@app.route('/api/token')
@auth.login_required
def get_auth_token():
token = g.user.generate_auth_token()
return jsonify({ 'token': token.decode('ascii') })
当我使用api/token
访问localhost
路线时,系统会提示我输入username
和password
。之后当我查看我的日志时,我发现username_or_token
变量是''
。
奇怪的是,我在我的online server
上测试了完全相同的代码并且没有问题..
我正在使用Advanced Rest Client
。使用此plugin
时,我会添加Authorisation header
并使用Login
标签下的下拉字段Password
和Basic
。在online server
执行时,我一直在做同样的事情。
我正在使用XAMPP
。不太确定要提供的其他信息。
以前有没有人经历过这个?
请求详细信息
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36
Authorization: Basic Z2lyaTFAZ21haWwuY29tOmFzZA==
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh-TW;q=0.4
HTTPIE输出
username
再次设置为''
。