title: How do you implement token authentication in Flask?
body: <p>I'm trying to allow users to login to my Flask app using their accounts from a separate web service. I can contact the api of this web service and receive a security token. How do I use this token to authenticate users so that they have access to restricted views?</p>
  
  <p>I don't need to save users into my own database. I only want to authenticate them for a session. I believe this can be done using Flask-Security and the @auth_token_required decorator but the documentation is not very detailed and I'm not sure how to implement this.</p>
  
  <p>EDIT:</p>
  
  <p>Here's a code example:</p>
  
  <pre><code>@main.route("/login", methods=["GET", "POST"])
  def login():
  
      payload = {"User": "john", "Password": "password123"}
      url = "http://webserviceexample/api/login"
      headers = {'content-type': 'application/json'})
  
      #login to web service
      r = requests.post(url, headers=headers, json=payload)
      response = r.json()
  
      if (r.status_code is 200):
          token = response['user']['authentication_token']
  
          # allow user into protected view
  
      return render_template("login.html", form=form)
  
  
  @main.route('/protected')
  @auth_token_required
  def protected():
      return render_template('protected.html')
  </code></pre>