Example #1
0
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('邮件发送失败')
Example #2
0
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('邮件发送失败')
Example #3
0
    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)
Example #4
0
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('邮件发送失败')
Example #5
0
    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': '用户登录失败'}