misc.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. import json
  5. from flask import Blueprint, render_template, request
  6. __author__ = 'James Iter'
  7. __date__ = '2017/9/12'
  8. __contact__ = 'james.iter.cn@gmail.com'
  9. __copyright__ = '(c) 2017 by James Iter.'
  10. blueprint = Blueprint(
  11. 'v_misc',
  12. __name__,
  13. url_prefix='/'
  14. )
  15. def login():
  16. return render_template('login.html')
  17. def change_password():
  18. return render_template('change_password.html')
  19. def recover_password():
  20. host_url = request.host_url.rstrip('/')
  21. if request.method == 'POST':
  22. login_name = request.form.get('login_name')
  23. url = host_url + '/api/user/_send_reset_password_email/' + login_name
  24. r = requests.put(url)
  25. j_r = json.loads(r.content)
  26. return render_template('success.html',
  27. go_back_url='/login',
  28. timeout=10000, title=u'提交成功',
  29. message_title=u'恢复密码的请求已被接受',
  30. message=u'恢复密码的URL已发送至您的邮箱,请查看您预留的邮箱:' + j_r['data']['email'] + u'。页面将在10秒钟后自动跳转到登录页面!')
  31. else:
  32. return render_template('recover_password.html')
  33. def reset_password(token):
  34. host_url = request.host_url.rstrip('/')
  35. if request.method == 'POST':
  36. password = request.form.get('password')
  37. payload = {
  38. "password": password
  39. }
  40. url = host_url + '/api/user/_reset_password/' + token
  41. headers = {'content-type': 'application/json'}
  42. r = requests.post(url, data=json.dumps(payload), headers=headers)
  43. j_r = json.loads(r.content)
  44. if j_r['state']['code'] == '200':
  45. return render_template('success.html',
  46. go_back_url='/login',
  47. timeout=10000, title=u'提交成功',
  48. message_title=u'重置密码成功',
  49. message=u'页面将在10秒钟后自动跳转到登录页面!')
  50. else:
  51. return render_template('failure.html',
  52. go_back_url='/login',
  53. timeout=10000, title=u'提交失败',
  54. message_title=u'重置密码失败',
  55. message=j_r['state']['sub']['zh-cn'] + u',页面将在10秒钟后自动跳转到登录页面!')
  56. else:
  57. return render_template('reset_password.html', token=token)