コード例 #1
0
def get_user():
    if request.method == 'POST':

        data = request.get_json()

        username = data['username']
        password = data['password']

        payload = {"username": username, "password": password}

        response = requests.post('http://users:5000/login', json=payload)

        if response.status_code == 200:

            access_token = create_access_token(identity=username)

            try:
                new_token = TokenModel(username=username, token=access_token)
                new_token.save_to_db()

            except:
                return {
                    'message': "An error occured inserting the token."
                }, 500

            return jsonify(access_token=access_token), 200

        else:
            return response.json(), 400

    return "ss"
コード例 #2
0
	def delete(self, id):
		if is_authentified()!=True:
			return {'message': 'Unauthorized'}, 401
		result = UserModel.get_user_by_id(id)
		if result and is_user_connected(id):
			TokenModel.delete_all_token_by_user_id(id)
			UserModel.delete_user_by_id(id)
			return {}, 204
		elif result:
			return {'message': 'Forbidden'}, 403
		else:
			return {'message': 'Not found'}, 404
コード例 #3
0
    def get(self):
        """get function of token

        get all information of all token in db

        :return information of request
        """
        return TokenModel.return_all()
コード例 #4
0
    def patch(self):
        """patch function of token

        Change the revoked status of a token in db

        :return information of request
        """
        data = parser_token_find.parse_args()
        jti = data['jti']
        if TokenModel.switch_revoked(jti):
            update_token_in_memory()
            return format_response(f'token with ${jti} changed', True)

        return format_response('something went wrong', False)
コード例 #5
0
def check_token():
    token = None
    if 'x-access-token' in request.headers:
        token = request.headers['x-access-token']

    if not token:
        return jsonify({'message': 'Token is missing'}), 401

    current_token = TokenModel.find_by_token(
        token=request.headers.get('x-access-token'))

    if current_token:
        return current_token.get_token(), 200

    return jsonify({'message': 'Token is invalid'}), 401
コード例 #6
0
    def delete(self):
        """delete function of token

        delete a token in db

        :return information of request
        """
        data = parser_token_find.parse_args()
        jti = data['jti']

        if TokenModel.delete_by_jti(jti):
            update_token_in_memory()
            return format_response(f'token with ${jti} deleted', True)

        return format_response('something went wrong', False)
コード例 #7
0
    def post(self):
        """post function of token

        Create a new token

        :return information of request
        """
        data = parser_token_create.parse_args()
        identity = data['identity']
        date = data['date']
        mode = data['mode']

        if TokenModel.find_by_identity(identity):
            return format_response('Token {} already exists'.format(identity), False)

        # create model
        new_token = TokenModel(
            identity=escape(identity),
            mode=mode,
            revoked=False,
            date=date
        )
        try:
            # create token with request information
            access_token = create_access_token(identity=new_token.identity,
                                               expires_delta=datetime.timedelta(days=get_days(date)),
                                               user_claims={'mode': new_token.mode})
            # get information of token to put in the model
            new_token.token = access_token
            decode = decode_token(access_token)
            new_token.jti = decode['jti']
            # save model in db
            new_token.save_to_db()
            # update token in memory
            update_token_in_memory()
            return {
                'message': 'Token {} was created'.format(identity),
                'access_token': access_token,
                'state': True
            }
        except Exception as e:
            print(e)
            return format_response('Something went wrong', False)
コード例 #8
0
    def create_user(email, password, group):

        user = User.objects.create_user(
            username=email,
            email=email,
            password=password,
        )

        country = Country.objects.first()

        if group.pk == GroupEnum.DEVELOPER:
            information = DeveloperInformation(
                country=country,
                developer=user
            )
            information.save()

        user.groups.add(group)

        token = TokenModel.create(user=user)
        token.save()

        return user, token
コード例 #9
0
        token_train_loader = torch.utils.data.DataLoader(
            dataset=TokenDataset(df_train),
            batch_size=config.batch_size,
            shuffle=True,
            num_workers=2,
            drop_last=True)

        token_val_loader = torch.utils.data.DataLoader(
            dataset=TokenDataset(df_val),
            batch_size=config.batch_size,
            num_workers=2,
            drop_last=True)

        device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

        token_model = TokenModel()
        token_model.to(device)
        dataloaders_dict = {
            'train': token_train_loader,
            'val': token_val_loader
        }
        optimizer = optim.AdamW(token_model.parameters(),
                                lr=config.token_lr,
                                betas=(0.9, 0.999))
        criterion = loss_fn
        print('Training Roberta for fold ' + str(fold))
        train_token_model(token_model, device, dataloaders_dict, criterion,
                          optimizer, fold)

        # Token model has been trained. Now we will use the best model to proceed for the character model.
コード例 #10
0
ファイル: security.py プロジェクト: kelovac/token
def authenticate(username, password):
    user = TokenModel.find_by_username(username)
    if user and check_password_hash(user.password, password):
        return user
コード例 #11
0
ファイル: security.py プロジェクト: kelovac/token
def identity(payload):
    token = payload['identity']
    return TokenModel.find_by_token(token)