def connect(provider): if provider == "renren": return "人人的api因为备案问题尚未审核通过,请先绑定其他平台吧,比如豆瓣:)" #return "thepast.me 正在升级硬件,暂时不提供登录、注册功能,请谅解,有问题请邮件到 [email protected]" client = None if provider == config.OPENID_DOUBAN: client = Douban() elif provider == config.OPENID_SINA: client = SinaWeibo() elif provider == config.OPENID_TWITTER: client = TwitterOAuth1() elif provider == config.OPENID_QQ: client = QQWeibo() elif provider == config.OPENID_RENREN: client = Renren() elif provider == config.OPENID_INSTAGRAM: client = Instagram() if not client: abort(400, "不支持该第三方登录") try: login_uri = client.login() except OAuthError, e: log.warning(e) abort(400, "抱歉,跳转到第三方失败,请重新尝试一下:)")
def connect(provider): if provider == "renren": return "我已经实在受不了人人,被人人的管理员快搞死了,怎么修改都不通过,唉... 有兴趣可以看看这边豆瓣网友的帖子:http://www.douban.com/note/250372684/" #return "thepast.me 正在升级硬件,暂时不提供登录、注册功能,请谅解,有问题请邮件到 [email protected]" client = None if provider == config.OPENID_DOUBAN: client = Douban() elif provider == config.OPENID_SINA: client = SinaWeibo() elif provider == config.OPENID_TWITTER: client = TwitterOAuth1() elif provider == config.OPENID_QQ: client = QQWeibo() elif provider == config.OPENID_RENREN: client = Renren() elif provider == config.OPENID_INSTAGRAM: client = Instagram() if not client: abort(400, "不支持该第三方登录") try: login_uri = client.login() except OAuthError, e: log.warning(e) abort(400, "抱歉,跳转到第三方失败,请重新尝试一下:)")
def connect_callback(provider): code = request.args.get("code") client = None user = None openid_type = config.OPENID_TYPE_DICT.get(provider) if not openid_type: abort(404, "not support such provider") if provider in [ config.OPENID_DOUBAN, config.OPENID_SINA, config.OPENID_RENREN, config.OPENID_INSTAGRAM, ]: if provider == config.OPENID_DOUBAN: client = Douban() elif provider == config.OPENID_SINA: client = SinaWeibo() elif provider == config.OPENID_RENREN: client = Renren() elif provider == config.OPENID_INSTAGRAM: client = Instagram() ## oauth2方式授权处理 try: token_dict = client.get_access_token(code) print "---token_dict", token_dict except OAuthError, e: log.warning(e) abort(400, u"从第三方获取access_token失败了,请重新尝试一下,抱歉:)") if not (token_dict and token_dict.get("access_token")): abort(400, "no_access_token") try: access_token = token_dict.get("access_token", "") refresh_token = token_dict.get("refresh_token", "") #the last is instagram case:) uid = token_dict.get("uid") or token_dict.get("user", {}).get("uid") \ or token_dict.get("user", {}).get("id") client.set_token(access_token, refresh_token) user_info = client.get_user_info(uid) print "---user_info", user_info, user_info.data except OAuthError, e: log.warning(e) abort(400, e.msg)