Exemplo n.º 1
0
def __authing_login(provider):
    try:
        # https://docs.authing.cn/authing/social-login/web/github
        # code: 错误或成功代码,200 为成功,非 200 为失败
        # message: 成功或错误信息
        # data: userInfo,若 code 为非 200 不返回此参数

        code = request.args.get('code')
        message = request.args.get('message')
        if (code != "200"):
            log.info("Login with authing:%s failed with code: %s, message: %s " % (provider, code, message))
            return __login_failed(provider)

        data = request.args.get('data')
        user_info = json.loads(data)
        user_name = user_info["username"]
        log.info("Login with authing:%s successfully. Sending user info `%s` to hackathon server."
                 % (provider, user_name))

        remote_user = login_manager_helper.authing(user_info)
        login_user(remote_user)
        token = user_info["token"]
        session["token"] = token
        if session.get("return_url") is not None:
            resp = make_response(redirect(session["return_url"]))
            session["return_url"] = None
        else:
            resp = make_response(redirect(url_for("index")))

        resp.set_cookie('token', token)
        return resp
    except Exception as ex:
        log.error(ex)
        return __login_failed(provider)
Exemplo n.º 2
0
    def logout(self, token):
        try:
            requests.delete(self.login_url, headers={"token": token})
        except Exception as e:
            log.error(e)

        session.pop("token", "")
        logout_user()
Exemplo n.º 3
0
 def load_user(self, id):
     try:
         req = requests.get(self.login_url, {"id": id})
         login_user = User(json.loads(req.content))
         return login_user
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 4
0
 def db_logout(self, admin):
     try:
         self.db.update_object(admin, online=0)
         self.db.commit()
         return True
     except Exception as e:
         log.error(e)
         return False
Exemplo n.º 5
0
    def logout(self, token):
        try:
            requests.delete(self.login_url, headers={"token": token})
        except Exception as e:
            log.error(e)

        session.pop("token", "")
        logout_user()
Exemplo n.º 6
0
 def load_user(self, id):
     try:
         req = requests.get(self.login_url, {"id": id})
         login_user = User(json.loads(req.content))
         return login_user
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 7
0
 def db_logout(self, admin):
     try:
         self.db.update_object(admin, online=0)
         self.db.commit()
         return True
     except Exception as e:
         log.error(e)
         return False
Exemplo n.º 8
0
 def __remote_login(self, data):
     try:
         req = requests.post(self.login_url,
                             json=data,
                             headers=self.headers)
         resp = req.json()
         if "error" in resp:
             log.debug("login failed: %r" % resp)
             return None
         else:
             login_user = User(resp["user"])
             token = resp["token"]
             return {"user": login_user, "token": token["token"]}
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 9
0
 def __remote_login(self, data):
     try:
         req = requests.post(self.login_url, json=data, headers=self.headers)
         resp = req.json()
         if "error" in resp:
             log.debug("login failed: %r" % resp)
             return None
         else:
             login_user = User(resp["user"])
             token = resp["token"]
             return {
                 "user": login_user,
                 "token": token["token"]
             }
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 10
0
 def authing(self, user_info):
     try:
         req = requests.post(self.authing_url,
                             json=user_info,
                             headers=self.headers)
         resp = req.json()
         if resp:
             # if login isn't successful, it will return None
             login_user = User(resp)
             log.debug("Login successfully %s" % login_user.get_user_id())
             return login_user
         else:
             log.debug("login failed: %r" % resp)
             return None
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 11
0
 def __remote_login(self, data):
     try:
         req = requests.post(self.login_url,
                             json=data,
                             headers=self.headers)
         resp = req.json()
         if resp:
             # if login isn't successful, it will return None
             login_user = User(resp["user"])
             token = resp["token"]
             log.debug("Login successfully %s" % login_user.get_user_id())
             return {"user": login_user, "token": token["token"]}
         else:
             log.debug("login failed: %r" % resp)
             return None
     except Exception as e:
         log.error(e)
         return None
Exemplo n.º 12
0
def __login(provider):
    code = request.args.get("code")
    try:
        admin_with_token = login_providers[provider].login({"code": code})
        if admin_with_token is None:
            return __login_failed(provider)

        log.info("login successfully:" + repr(admin_with_token))

        token = admin_with_token["token"].token
        login_user(admin_with_token["admin"])
        session["token"] = token
        if session.get("return_url") is not None:
            resp = make_response(redirect(session["return_url"]))
            session["return_url"] = None
        else:
            resp = make_response(redirect(url_for("index")))
        resp.set_cookie("token", token)
        return resp
    except Exception as ex:
        log.error(ex)
        return __login_failed(provider)
Exemplo n.º 13
0
def __login(provider):
    try:
        user_with_token = login_manager_helper.login(provider)

        if user_with_token is None:
            return __login_failed(provider)

        log.info("login successfully:" + repr(user_with_token))

        token = user_with_token["token"]
        login_user(user_with_token["user"])
        session["token"] = token
        if session.get("return_url") is not None:
            resp = make_response(redirect(session["return_url"]))
            session["return_url"] = None
        else:
            resp = make_response(redirect(url_for("index")))
        resp.set_cookie("token", token)
        return resp
    except Exception as ex:
        log.error(ex)
        return __login_failed(provider)
Exemplo n.º 14
0
def __login(provider):
    try:
        user_with_token = login_manager_helper.login(provider)

        if user_with_token is None:
            return __login_failed(provider)

        log.info("login successfully:" + repr(user_with_token))

        token = user_with_token["token"]
        login_user(user_with_token["user"])
        session["token"] = token
        if session.get("return_url") is not None:
            resp = make_response(redirect(session["return_url"]))
            session["return_url"] = None
        else:
            resp = make_response(redirect(url_for("index")))
        resp.set_cookie('token', token)
        return resp
    except Exception as ex:
        log.error(ex)
        return __login_failed(provider)
Exemplo n.º 15
0
def __login(provider):
    code = request.args.get('code')
    try:
        admin_with_token = login_providers[provider].login({"code": code})
        if admin_with_token is None:
            return __login_failed(provider)

        log.info("login successfully:" + repr(admin_with_token))

        token = admin_with_token["token"].token
        login_user(admin_with_token["admin"])
        session["token"] = token
        if session.get("return_url") is not None:
            resp = make_response(redirect(session["return_url"]))
            session["return_url"] = None
        else:
            resp = make_response(redirect(url_for("index")))
        resp.set_cookie('token', token)
        return resp
    except Exception as ex:
        log.error(ex)
        return __login_failed(provider)
Exemplo n.º 16
0
 def log_error(self, msg, *args, **kwargs):
     if self.quiet == False:
         log.error(msg, *args, **kwargs)