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 auth(): code = request.args['code'] # get access token and userID url = "https://www.douban.com/service/auth2/token" data = { 'client_id': config.DOUBAN_CLIENT_ID, 'client_secret': config.DOUBAN_SECRET, 'redirect_uri': config.DOUBAN_REDIRECT_URI, '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_exist_by_id(user_id): # if user unactive if not User.check_active(user_id): return redirect(url_for('verify_email_callback', state='unactive', user_id=user_id)) else: # set session session.permanent = True session['user_id'] = user_id session['user_name'] = User.get_name_by_id(user_id) session['user_abbr'] = User.get_abbr_by_id(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'] abbr = user_info['uid'] avatar = user_info['avatar'] signature = user_info['signature'] desc = user_info['desc'] location_id = int(user_info['loc_id']) if 'loc_id' in user_info else 0 location = user_info['loc_name'] User.add_user(user_id, user_name, abbr, avatar, signature, desc, location_id, location) # go to the verify email page return redirect(url_for('send_verify_email', user_id=user_id))
def auth(): # get current authed userID code = request.args['code'] url = "https://www.douban.com/service/auth2/token" data = { 'client_id': config.DOUBAN_CLIENT_ID, 'client_secret': config.DOUBAN_SECRET, 'redirect_uri': config.DOUBAN_REDIRECT_URI, 'grant_type': 'authorization_code', 'code': code } r = requests.post(url, data=data).json() user_id = int(r['douban_user_id']) # if user exist if User.check_exist_by_id(user_id): # if user unactive if not User.check_active(user_id): return redirect( url_for('verify_email_callback', state='unactive', user_id=user_id)) else: # set session session.permanent = True session['user_id'] = user_id session['user_name'] = User.get_name_by_id(user_id) session['user_abbr'] = User.get_abbr_by_id(user_id) return redirect(url_for('index')) # if not exist else: # get user info url = "https://api.douban.com/v2/user/" + str(user_id) user_info = requests.get(url).json() # add user user_id = int(user_info['id']) user_name = user_info['name'] abbr = user_info['uid'] avatar = user_info['avatar'] signature = user_info['signature'] desc = user_info['desc'] location_id = int(user_info['loc_id']) if 'loc_id' in user_info else 0 location = user_info['loc_name'] User.add_user(user_id, user_name, abbr, avatar, signature, desc, location_id, location) # go to the verify email page return redirect(url_for('send_verify_email', user_id=user_id))
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 auth(): # get current authed userID code = request.args['code'] url = "https://www.douban.com/service/auth2/token" data = { 'client_id': config.DOUBAN_CLIENT_ID, 'client_secret': config.DOUBAN_SECRET, 'redirect_uri': config.DOUBAN_REDIRECT_URI, 'grant_type': 'authorization_code', 'code': code } r = requests.post(url, data=data).json() user_id = int(r['douban_user_id']) # if user exist if User.check_exist_by_id(user_id): # if user unactive if not User.check_active(user_id): return redirect(url_for('verify_email_callback', state='unactive', user_id=user_id)) else: # set session session.permanent = True session['user_id'] = user_id session['user_name'] = User.get_name_by_id(user_id) session['user_abbr'] = User.get_abbr_by_id(user_id) return redirect(url_for('index')) # if not exist else: # get user info url = "https://api.douban.com/v2/user/" + str(user_id) user_info = requests.get(url).json() # add user user_id = int(user_info['id']) user_name = user_info['name'] abbr = user_info['uid'] avatar = user_info['avatar'] signature = user_info['signature'] desc = user_info['desc'] location_id = int(user_info['loc_id']) if 'loc_id' in user_info else 0 location = user_info['loc_name'] User.add_user(user_id, user_name, abbr, avatar, signature, desc, location_id, location) # go to the verify email page return redirect(url_for('send_verify_email', user_id=user_id))