1 <!-- extend from base layout --> 2 {% extends "base.html" %} 3 4 {% block content %} 5 <h1>Sign In</h1> 6 <form action="" method="post" name="login"> 7 {{form.hidden_tag()}} 8 <p> 9 Please enter your OpenID:<br> 10 {{form.openid(size=80)}}<br> 11 </p> 12 <p>{{form.remember_me}} Remember Me</p> 13 <p><input type="submit" value="Sign In"></p> 14 </form> 15 {% endblock %}
form.hidden_tag() 模板參數將被替換爲一個隱藏字段,用來是實如今配置中激活的 CSRF 保護。若是你已經激活了 CSRF,這個字段須要出如今你全部的表單中。html
1 <input id="csrf_token" name="csrf_token" type="hidden" value="IjA5YTIwMTFiNTU4OGI1OTZlNjRkNDRlYjE4MjQzYzgxNWNiZjAwZDci.C6-i-w.KU6p56A3yoXikSY7uq6YyuwqSjk">
爲了避免被跨站攻擊的一個保護措施,須要在config.py 裏面設置兩配置app
CSRF_ENABLED = True #Flaks-WTF 擴展只須要兩個配置。 CSRF_ENABLED 配置是爲了激活 跨站點請求僞造 保護
SECRET_KEY = 'lalademaxiyaQWERTYUIKSDFGXCVBNMdfghnrfghjwqr'#第二個_僅僅當 CSRF 激活的時候才須要,它是用來創建一個加密的令牌,用於驗證一個表單
app/__init__.py
# Flask 去讀取以及使用配置文件
app.config.from_object('config')