Exemple #1
0
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, "抱歉,跳转到第三方失败,请重新尝试一下:)")
Exemple #2
0
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, "抱歉,跳转到第三方失败,请重新尝试一下:)")
Exemple #3
0
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)