def updateProfile(self, id_token, refresh_token, access_token, attr_map): u = Cognito(self.USER_POOL_ID, self.CLIENT_ID, id_token=id_token, refresh_token=refresh_token, access_token=access_token) u.update_profile(attr_map)
def topup(): form = CreditForm() if request.method == 'POST': msg = "" token = request.form['id'] # Using Flask amount = request.form['amount'] charge = stripe.Charge.create( amount=amount, currency='nzd', description='vr 360 service fee', source=token, ) # todo how to know charge is success? try: if 'id_token' in session and 'access_token' in session and 'refresh_token': u = Cognito(cognito_userpool_id, cognito_client_id, cognito_userpool_region, id_token=session['id_token'], refresh_token=session['refresh_token'], access_token=session['access_token'], username=current_user.id) topup_amount = int(float(amount) / 100) user = u.get_user() balance = int(user._data['custom:credit']) new_balance = topup_amount + balance u.update_profile({'custom:credit': str(new_balance)}) user = u.get_user() balance = user._data['custom:credit'] session['credit'] = balance current_user.credit = balance else: raise Exception("Charged,but fail to topup the account") except Exception as e: if hasattr(e, 'message'): msg = e.message else: msg = e else: msg = "Topup Successfully" finally: # flash(msg) return msg #render_template("topup.html",form=form, key=stripe_keys['publishable_key'])#redirect(url_for("topup")) elif request.method == 'GET': return render_template("topup.html", form=form, key=stripe_keys['publishable_key'])
class CognitoAuthTestCase(unittest.TestCase): def setUp(self): self.cognito_user_pool_id = env('COGNITO_USER_POOL_ID') self.app_id = env('COGNITO_APP_ID') self.username = env('COGNITO_TEST_USERNAME') self.password = env('COGNITO_TEST_PASSWORD') self.user = Cognito(self.cognito_user_pool_id, self.app_id, self.username) def tearDown(self): del self.user def test_authenticate(self): self.user.authenticate(self.password) self.assertNotEqual(self.user.access_token, None) self.assertNotEqual(self.user.id_token, None) self.assertNotEqual(self.user.refresh_token, None) def test_logout(self): self.user.authenticate(self.password) self.user.logout() self.assertEqual(self.user.id_token, None) self.assertEqual(self.user.refresh_token, None) self.assertEqual(self.user.access_token, None) @patch('warrant.Cognito', autospec=True) def test_register(self, cognito_user): u = cognito_user(self.cognito_user_pool_id, self.app_id, username=self.username) res = u.register('sampleuser', 'sample4#Password', given_name='Brian', family_name='Jones', name='Brian Jones', email='*****@*****.**', phone_number='+19194894555', gender='Male', preferred_username='******') #TODO: Write assumptions def test_renew_tokens(self): self.user.authenticate(self.password) self.user.renew_access_token() def test_update_profile(self): self.user.authenticate(self.password) self.user.update_profile({'given_name': 'Jenkins'}) u = self.user.get_user() self.assertEquals(u.given_name, 'Jenkins') def test_admin_get_user(self): u = self.user.admin_get_user() self.assertEqual(u.pk, self.username) def test_check_token(self): self.user.authenticate(self.password) self.assertFalse(self.user.check_token()) @patch('warrant.Cognito', autospec=True) def test_validate_verification(self, cognito_user): u = cognito_user(self.cognito_user_pool_id, self.app_id, username=self.username) u.validate_verification('4321') @patch('warrant.Cognito', autospec=True) def test_confirm_forgot_password(self, cognito_user): u = cognito_user(self.cognito_user_pool_id, self.app_id, username=self.username) u.confirm_forgot_password('4553', 'samplepassword') with self.assertRaises(TypeError) as vm: u.confirm_forgot_password(self.password) @patch('warrant.Cognito', autospec=True) def test_change_password(self, cognito_user): u = cognito_user(self.cognito_user_pool_id, self.app_id, username=self.username) u.authenticate(self.password) u.change_password(self.password, 'crazypassword$45DOG') with self.assertRaises(TypeError) as vm: self.user.change_password(self.password) def test_set_attributes(self): u = Cognito(self.cognito_user_pool_id, self.app_id) u._set_attributes({'ResponseMetadata': { 'HTTPStatusCode': 200 }}, {'somerandom': 'attribute'}) self.assertEquals(u.somerandom, 'attribute') def test_admin_authenticate(self): self.user.admin_authenticate(self.password) self.assertNotEqual(self.user.access_token, None) self.assertNotEqual(self.user.id_token, None) self.assertNotEqual(self.user.refresh_token, None)
user_pool_region='eu-west-1', id_token=tokens['AuthenticationResult']['IdToken'], refresh_token=tokens['AuthenticationResult']['RefreshToken'], access_token=tokens['AuthenticationResult']['AccessToken']) cognito.update_profile({ 'address': props['ADDRESS'], 'locale': props['LOCALE'], 'phone_number': props['PHONE_NUMBER'], 'picture': props['PICTURE'], 'preferred_username': props['PREFERRED_USERNAME'], 'custom:certificate_proof': props['PROOF_OF_CERTIFICATES'], 'custom:partner': props['PARTNER'] # # The following attributes are not mutable # # 'email': props['EMAIL'], # 'birthdate': props['DATE_OF_BIRTH'], # 'custom:engineer_ID': props['ENGINEER_ID'], # 'family_name': props['FAMILY_NAME'], # 'given_name': props['GIVEN_NAME'], # 'name': props['USERNAME'] }) Printer.success()