def wrapper(*args, **kwargs): if request.authorization is None: raise Unauthorized([{ 'detail': 'You must provide basic authorization headers', 'where': 'request.authorization', }]) identifier = request.authorization['username'] token = request.authorization['password'] user = User.get_by('identifier', identifier) token = Token.get_by('token', token) if ( user is None or token is None or token.proxy.user.get().id != user.id ): raise Unauthorized([{ 'detail': 'Your credentials are invalid, sorry', 'where': 'request.authorization', }]) g.user = user return view(*args, **kwargs)
def whoami(): identifier = flask.request.authorization['username'] token = flask.request.authorization['password'] user = User.get_by('identifier', identifier) token = Token.get_by('token', token) if user is None or \ token is None or \ token.user.get().id != user.id: raise Unauthorized([{ 'detail': 'Your credentials are invalid, sorry', 'where': 'request.authorization', }]) return flask.jsonify({ 'data': user.to_json(), })
def signin(backend): # this raises AuthenticationError exception if failed identifier, data = backend.authenticate(**flask.request.form.to_dict()) user = get_or_create_user(identifier, data) # creates auth token if user.tokens.count() > 0: token = user.tokens.all()[0] else: token = ''.join(choice(ascii_letters) for _ in range(32)) token = Token(token=token).save() token.user.set(user) return flask.jsonify({ 'data': { 'username': user.identifier, 'fullname': user.fullname, 'token': token.token, } })
def make_user(identifier, name): u = User(identifier=identifier, fullname=name).save() token = Token(token=random_string(9)).save() token.proxy.user.set(u) return u
def make_user(identifier, name, email=None): u = User(identifier=identifier, fullname=name, email=email).save() token = Token(token=random_string(9)).save() token.user.set(u) return u