def authenticate(provider): res = socialauth.http_get_provider( provider, request.base_url, # Callback URL request.args, # GET parameters/query string current_app.secret_key, request.cookies.get('jwt') # Currently stored token ) if res.get('status') == 302: resp = make_response(redirect(res.get('redirect'))) if res.get('set_token_cookie') is not None: resp.set_cookie('jwt', res.get('set_token_cookie'), httponly = True) return resp if res.get('status') == 200: resp = make_response(jsonify({ 'status': 'success' })) token = jwt.encode( { 'user_id': res.get('provider_user_id') }, current_app.secret_key, algorithm = 'HS256' ) resp.set_cookie('jwt', token, httponly = True) return resp # Something has gone very wrong. This should not happen. abort(400)
def get_provider(self, args, token=None): return socialauth.http_get_provider("twitter", twitter_base_url, args, "sekret", token)
def test_invalid_provider(self): with self.assertRaises(socialauth.InvalidUsage): socialauth.http_get_provider("foobar!", "", {}, "")
def get_provider(self, args, token=None): return socialauth.http_get_provider("facebook", facebook_base_url, args, "sekret", None)