【问题标题】:How to pass a token without postman如何在没有邮递员的情况下传递令牌
【发布时间】:2020-09-24 08:01:40
【问题描述】:

我正在使用flask和jwt在android中构建一个应用程序; 我如何将令牌传递给路线? 这是我的登录信息:

   @app.route('/login', methods=['POST'])
def login_user():
    user_info = request.get_json()
    user_obj = User.query.filter_by(username = user_info['username']).first()
    if user_obj is not None:
        if user_info['password'] == user_obj.password:
            token = create_access_token(identity = user_obj.username)
            return jsonify({'access_token':token})

还有我的受保护路线:

@app.route('/jwt/users', methods = ['GET'])
@jwt_required
def get_all_users():
    current_user = get_jwt_identity()
    return jsonify({"result": current_user})

现在如何在没有邮递员的情况下将登录时创建的令牌传递给受保护的路由?我使用 android studio 作为客户端。

这是我的 app.config:

app.config['JWT_TOKEN_LOCATION'] = ['headers', 'query_string']
app.config['JWT_SECRET_KEY'] = 'this-is-the-secret-key'

(稍后会更改密钥)

【问题讨论】:

    标签: python android flask jwt access-token


    【解决方案1】:

    将令牌作为header 的一部分传递给受保护的端点。

    看例子here

    $ curl http://localhost:5000/protected
    {
      "msg": "Missing Authorization Header"
    }
    
    $ curl -H "Content-Type: application/json" -X POST \
      -d '{"username":"test","password":"test"}' http://localhost:5000/login
    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6dHJ1ZSwianRpIjoiZjhmNDlmMjUtNTQ4OS00NmRjLTkyOWUtZTU2Y2QxOGZhNzRlIiwidXNlcl9jbGFpbXMiOnt9LCJuYmYiOjE0NzQ0NzQ3OTEsImlhdCI6MTQ3NDQ3NDc5MSwiaWRlbnRpdHkiOiJ0ZXN0IiwiZXhwIjoxNDc0NDc1NjkxLCJ0eXBlIjoiYWNjZXNzIn0.vCy0Sec61i9prcGIRRCbG8e9NV6_wFH2ICFgUGCLKpc"
    }
    
    $ export ACCESS="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6dHJ1ZSwianRpIjoiZjhmNDlmMjUtNTQ4OS00NmRjLTkyOWUtZTU2Y2QxOGZhNzRlIiwidXNlcl9jbGFpbXMiOnt9LCJuYmYiOjE0NzQ0NzQ3OTEsImlhdCI6MTQ3NDQ3NDc5MSwiaWRlbnRpdHkiOiJ0ZXN0IiwiZXhwIjoxNDc0NDc1NjkxLCJ0eXBlIjoiYWNjZXNzIn0.vCy0Sec61i9prcGIRRCbG8e9NV6_wFH2ICFgUGCLKpc"
    
    $ curl -H "Authorization: Bearer $ACCESS" http://localhost:5000/protected
    {
      "logged_in_as": "test"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2017-03-20
      • 2015-09-14
      • 1970-01-01
      • 2017-03-03
      • 2020-01-15
      • 1970-01-01
      相关资源
      最近更新 更多