add auth with tests

.gitignore this?