def login_post(client_id): login = request.form['login'] password = request.form['password'] login = Login.find(login) if login == None: flash('User not found!', 'error') return redirect(url_for('.login_get', client_id=client_id)) p_ok = sha256_crypt.verify(password, login.password) if not p_ok: flash('Incorect password!', 'error') return redirect(url_for('.login_get', client_id=client_id)) session['user'] = login app = Application.find(client_id) return redirect(url_for('.authorization_code', client_id=client_id, redirect_uri=app.redirect_uri, response_type='code'))
def authorization_class(self): return AdverbResourceAuthorization def get_authorization_header(self): if 'Authorization' in request.headers: return request.headers['Authorization'] def validate_access_token(self, access_token, authorization): access_key = 'oauth2.access_token:%s' % access_token data = self.redis.get(access_key) if data is not None: data = json.loads(data) authorization.is_valid = data.get('scope') == '' authorization.client_id = data['client_id'] authorization.expires_in = self.redis.ttl(access_key) authorization.login_id = data['user_id'] if __name__ == '__main__': from flask import Flask, request from models import Login import logging logging.basicConfig(filename='example.log',level=logging.DEBUG) app = Flask(__name__) app.secret_key = 'secret' with app.test_request_context('/hello', method='POST'): session['user'] = Login.find('*****@*****.**') p = AdverbAuthorizationProvider() r = p.get_authorization_code_from_uri('http://localhost:5000/oauth2/auth?client_id=51051fa6d00cf2206b0d7db3&response_type=code&redirect_uri=http://localhost:5000/oauth/redirect') for k, v in r.headers.iteritems(): print k, v