Пример #1
0
 def get(self):
     identity = get_jwt_identity()
     found = user_collection.find_one({'_id': identity},
                                      {'password': False})
     if found:
         return response.success(payload=found)
     return response.client_error()
Пример #2
0
    def get(self):
        identity = get_jwt_identity()
        found_user = user_collection.find_one({'_id': identity})

        if found_user and 'is_admin' in found_user :
            return response.success(payload={'is_admin':found_user['is_admin'],'admin_mail':found_user['admin_mail']})
        else:
            return response.server_error()
Пример #3
0
 def post(self):
     raw = api.payload
     identity = get_jwt_identity()
     found = user_collection.find_one({'email': raw["email"]})
     if found:
         reset_url = "{}{}{}".format(current_app.config['WEB_CLIENT'], "auth/reset-password/",
                                     generate_confirmation_token(identity))
         handle_email(0, reset_url, raw["email"], EmailTypes.ResetPassword)
         return response.success()
     return response.client_error(result_message='Kullanıcı adı ve parolayla eşleşen bir hesap bulunamadı.')
Пример #4
0
 def post(self):
     raw = api.payload
     identity = get_jwt_identity()
     if raw["password"] == raw["confirmPassword"]:
         found = user_collection.find_one({'_id': identity})
         if check_password_hash(found['password'], raw["oldPassword"]):
             if user_collection.update({'_id': identity},
                                       {'$set': {'password': generate_password_hash(raw["password"])}}):
                 return response.success()
         return response.client_error(result_message='WrongOldPassword.')
     return response.client_error(result_message='PasswordMismatch')
Пример #5
0
    def post(self):
        raw = api.payload
        found = user_collection.find_one({'_id': raw["_id"]})
        if found and check_password_hash(found['password'], raw["password"]):
            access_token = create_access_token(identity=found["_id"], fresh=True)
            refresh_token = create_refresh_token(identity=found["_id"])
            payload = {
                'access_token': access_token,
                'refresh_token': refresh_token
            }
            return response.success(payload)

        return response.client_error(result_message='Kullanıcı adı ve parolayla eşleşen bir hesap bulunamadı.')
Пример #6
0
    def get(self):
        is_successful_callback = False
        print(request.args)
        if request.args.get('success', default=False):
            is_successful_callback = request.args.get('success')

        # Redirect to register screen in case of callback failure
        if not bool(is_successful_callback):
            return redirect(
                '{}/register?message={}'.format(current_app.config['WEB_CLIENT'], 'Failed'))

        callback_response = requests.post(url='{}'.format(current_app.config['IDENTITY_SERVER_VALIDATION_URL']),
                                          json={'id_token': request.args.get('id_token')})

        print("callback", callback_response.json())

        if callback_response.status_code == 200 and 'payload' in callback_response.json():
            try:
                payload = json.loads(cipher.decrypt(callback_response.json()['payload']))
                print(payload)
                g.user_email = payload['email']
                # TODO: Write your logic. I.e. register user, ask for password for new users etc.
                if user_collection.find_one({'_id': payload['email']}):
                    access_token = create_refresh_token(identity=payload['email'])
                    return redirect(
                        '{}/auth/google_result?t={}&e={}'.format(current_app.config['WEB_CLIENT'], access_token,
                                                                 payload['email']))
                # return redirect(
                #     '{}/register?message={}'.format(current_app.config['WEB_CLIENT'], 'No such user'))
                else:
                    raw = {'_id': payload['email'], 'password': '******' , 'is_admin':False}
                    register_response = register(raw=raw, generate_password_hash=generate_password_hash, user_collection=user_collection,
                             create_access_token=create_access_token, response=response)

                    if(register_response['result_code'] == 200):
                        access_token = create_refresh_token(identity=payload['email'])
                        return redirect(
                            '{}/auth/google_result?t={}&e={}'.format(current_app.config['WEB_CLIENT'], access_token,
                                                                     payload['email']))

                # Redirect to register screen in case of validation failure
            except KeyError as err:
                return redirect(
                    '{}/register?t={}'.format(current_app.config['WEB_CLIENT'], "Couldn't validate: {}".format(err)))