def verify_email(user_id, verify_code): user_name = User.get_name(user_id) if verify_code == hashlib.sha1(user_name).hexdigest(): User.active_user(user_id) session['user_id'] = user_id session['user_name'] = user_name return redirect(url_for('verify_email_callback', state='active_succ')) else: return redirect(url_for('verify_email_callback', state='active_failed'))
def auth(): code = request.args['code'] # get access token and userID url = "https://www.douban.com/service/auth2/token" data = { 'client_id': '0cf909cba46ce67526eb1d62ed46b35f', 'client_secret': '4c87a8ef33e6c6be', 'redirect_uri': 'http://localhost:5000/login/douban', 'grant_type': 'authorization_code', 'code': code } data = urllib.urlencode(data) req = urllib2.Request(url, data) response = urllib2.urlopen(req) info = eval(response.read()) user_id = int(info['douban_user_id']) # if user exist if User.check_user_exist(user_id): # if user unactive if not User.check_user_active(user_id): return redirect( url_for('verify_email_callback', state='unactive', user_id=user_id)) else: # set session session['user_id'] = user_id session['user_name'] = User.get_name(user_id) return redirect(url_for('index')) # if not exist else: # get user info url = "https://api.douban.com/v2/user/" + str(user_id) req = urllib2.Request(url) response = urllib2.urlopen(req) user_info = eval(response.read().replace( '\\', '')) # remove '\' and convert str to dict # add user user_id = int(user_info['id']) user_name = user_info['name'] avatar = user_info['avatar'] signature = user_info['signature'] desc = user_info['desc'] location_id = int(user_info['loc_id']) location = user_info['loc_name'] User.add_user(user_id, user_name, avatar, signature, desc, location_id, location) # go to the verify email page return redirect(url_for('send_verify_email', user_id=user_id))
def send_verify_email(): if request.method == 'GET': user_id = int(request.args['user_id']) user_name = User.get_name(user_id) return render_template('send_verify_email.html', user_id=user_id, user_name=user_name) elif request.method == 'POST': # email f_addr = "*****@*****.**" t_addr = request.form['email'] # user info user_id = int(request.form['user_id']) user_name = User.get_name(user_id) # add this email to user User.add_email(user_id, t_addr) # gene verify url verify_code = hashlib.sha1(user_name).hexdigest() verify_url = "http://*****:*****@qq.com', 'xiaowang2013qqzi') s.sendmail('*****@*****.**', t_addr, msg.as_string()) return redirect(url_for('verify_email_callback', state='send_succ'))
def auth(): code = request.args['code'] # get access token and userID url = "https://www.douban.com/service/auth2/token" data = { 'client_id': '0cf909cba46ce67526eb1d62ed46b35f', 'client_secret': '4c87a8ef33e6c6be', 'redirect_uri': 'http://localhost:5000/login/douban', 'grant_type': 'authorization_code', 'code': code } data = urllib.urlencode(data) req = urllib2.Request(url, data) response = urllib2.urlopen(req) info = eval(response.read()) user_id = int(info['douban_user_id']) # if user exist if User.check_user_exist(user_id): # if user unactive if not User.check_user_active(user_id): return redirect(url_for('verify_email_callback', state='unactive', user_id=user_id)) else: # set session session['user_id'] = user_id session['user_name'] = User.get_name(user_id) return redirect(url_for('index')) # if not exist else: # get user info url = "https://api.douban.com/v2/user/" + str(user_id) req = urllib2.Request(url) response = urllib2.urlopen(req) user_info = eval(response.read().replace('\\', '')) # remove '\' and convert str to dict # add user user_id = int(user_info['id']) user_name = user_info['name'] avatar = user_info['avatar'] signature = user_info['signature'] desc = user_info['desc'] location_id = int(user_info['loc_id']) location = user_info['loc_name'] User.add_user(user_id, user_name, avatar, signature, desc, location_id, location) # go to the verify email page return redirect(url_for('send_verify_email', user_id=user_id))