def sendMail(uId): try: import manage except: pass global manage with manage.app.test_request_context(): u = dao.getById(User, uId) print('查到的用户', u) # helper.sendMail(u) token = getToken() # 将token设置到redis缓存中 App.ext.cache.set(token, u.id, timeout=10 * 60) # 允许10分钟内来激活用户 active_url = request.host_url + 'account/?opt=active&token=' + token print(active_url) # 发送邮件 msg = Message(subject='Tpp用户激活', recipients=[u.email], sender='*****@*****.**') msg.html = render_template('msg.html', username=u.name, active_url=active_url) try: print(msg.html) App.ext.mail.send(msg) print('邮件已发送') except Exception as e: print(e) print('邮件发送失败')
def sendMail(uId, url): try: import manage except: pass global manage with manage.app.test_request_context(): u = dao.getById(User, uId) print('查到的用户', u) # helper.sendMail(u) token = getToken() # 将token设置到redis缓存中 App.ext.cache.set(token, u.id, timeout=10 * 60) # 允许10分钟内来激活用户 active_url = url + 'account/?opt=active&token=' + token print(active_url) # 发送邮件 msg = Message(subject='Tpp用户激活', recipients=[u.email], sender='*****@*****.**') # msg.html = render_template('msg.html', username=u.name, active_url=active_url) msg.html = "<h1>{} 注册成功!</h1><h3>请先<a href={}>激活</a>注册账号</h3> <h2>或者复制地址到浏览器: {}</h2>" \ .format(u.name, active_url, active_url) try: print(msg.html) App.ext.mail.send(msg) print('邮件已发送') except Exception as e: print(e) print('邮件发送失败')
def login(self): # GET请求时,opt为login时 loginParser = self.parser.copy() loginParser.add_argument('name', required=True, help='需提供name') loginParser.add_argument('passwd', required=True, help='需提供口令') # 验证登录参数 args = loginParser.parse_args() username = args.get('name') password = args.get('passwd') # 查询用户(额外添加一条件:用户已激活) print(username, password) qs = dao.query(User).filter( User.name.__eq__(username), User.password.__eq__(helper.md5_crypt(password)), User.is_active == True, User.is_life == True) if not qs.count(): return {'status': 600, 'msg': '用户登录失败,用户名或口令不正确!'} u: User = qs.first() u.last_login_time = datetime.today() dao.save(u) # 更新用户登录的时间 token = helper.getToken() print('skdjfksdfksdkfh', token) session[token] = u.id # 将token存放session中 print('++++++++++', session.get(token)) out_user_fields = { 'name': fields.String, 'email': fields.String, 'phone': fields.String, 'photo': fields.String(attribute='photo_1') } out_fields = { 'msg': fields.String, 'data': fields.Nested(out_user_fields), 'access_token': fields.String } data = {'msg': '登录成功!', 'data': u, 'access_token': token} # 通过marshal 将返回的data数据按输出字段转成json字符 return marshal(data, out_fields)
def sendMail(uId,active_url): with manage.app.test_request_context(): u = dao.getById(User, uId) token = getToken() App.ext.cache.set(token, u.id, timeout=60 * 10) active_url = active_url + token msg = Message(subject='淘票票用户激活', recipients=[u.email]) msg.html = render_template('msg.html', username=u.name, active_url=active_url) try: App.ext.mail.send(msg) print('邮件已发送') except Exception as e: print('邮件发送失败')
def login(self): loginParser = self.parser.copy() loginParser.add_argument('username', required=True, help='用户登录必须提供用户名') loginParser.add_argument('password', required=True, help='用户登录必须提供口令') args = loginParser.parse_args() username = args.get('username') password = args.get('password') user = dao.login(User, username, md5_crypt(password)) print(user) if user: token = getToken() user.last_login_time = datetime.today() dao.save(user) session[token] = user.id out_user_fields = { 'name': fields.String, 'email': fields.String, 'phone': fields.String, 'photo1': fields.String(attribute='photo_1') } out_fields = { 'msg': fields.String, 'data': fields.Nested(out_user_fields), 'access_token': fields.String } data = {'msg': '登录成功', 'data': user, 'access_token': token} return marshal(data, out_fields) return {'msg': '用户登录失败'}