예제 #1
0
파일: oauth2.py 프로젝트: kianxineki/n3_api
def login_success():
    code = request.params.get("code")
    session = google.get_auth_session(
        data=dict(code=code, redirect_uri=redirect_uri, grant_type="authorization_code"), decoder=json.loads
    )
    json_path = "https://www.googleapis.com/oauth2/v1/userinfo"
    session_json = session.get(json_path).json()
    # For non-Ascii characters to work properly!
    session_json = dict((k, unicode(v).encode("utf-8")) for k, v in session_json.iteritems())
    session_json["_id"] = session_json["id"]
    session_json = M_login.check_user(session_json)  # create user if not exist
    response.set_cookie(settings.COOKIE_NAME, cookie_encode(session_json, settings.SECRET))

    return redirect("/")
예제 #2
0
파일: oauth2.py 프로젝트: agalera/n3
def login_success():
    code = request.params.get('code')
    session = google.get_auth_session(data=dict(
        code=code, redirect_uri=redirect_uri, grant_type='authorization_code'),
                                      decoder=json.loads)
    json_path = 'https://www.googleapis.com/oauth2/v1/userinfo'
    session_json = session.get(json_path).json()
    # For non-Ascii characters to work properly!
    session_json = dict(
        (k, unicode(v).encode('utf-8')) for k, v in session_json.iteritems())
    session_json['_id'] = session_json['id']
    session_json = M_login.check_user(session_json)  # create user if not exist
    response.set_cookie(settings.COOKIE_NAME,
                        cookie_encode(session_json, settings.SECRET))

    return redirect("/")
예제 #3
0
파일: oauth2.py 프로젝트: agalera/n3_api
        def wrapper(*a, **ka):
            token = get_cookie()
            ka['auth_user'] = token
            if token is not None and token['account_type'] >= check:
                if settings.PARANOID:
                    user = M_login.get_user(token['_id'])
                    if user['account_type'] != token['account_type']:
                        '''
                        User data are different from those found in the
                        database.

                        This may be because some data has been changed to
                        the user or the user has achieved the secret_password
                        with which cookies are encoded
                        '''
                        return HTTPError(401, "Unauthorized")
                return func(*a, **ka)
            return HTTPError(403, "Forbbiden")
예제 #4
0
파일: oauth2.py 프로젝트: kianxineki/n3_api
        def wrapper(*a, **ka):
            token = get_cookie()
            ka["auth_user"] = token
            if token is not None and token["account_type"] >= check:
                if settings.PARANOID:
                    user = M_login.get_user(token["_id"])
                    if user["account_type"] != token["account_type"]:
                        """
                        User data are different from those found in the
                        database.

                        This may be because some data has been changed to
                        the user or the user has achieved the secret_password
                        with which cookies are encoded
                        """
                        return HTTPError(401, "Unauthorized")
                return func(*a, **ka)
            return HTTPError(403, "Forbbiden")