Sign inSign up

pepodev/autoauth

By pepodev

Updated over 5 years ago

Automatic Internet Portal Authentication CLI written in Go 🛰🛰

Image
0

631

pepodev/autoauth repository overview

AutoAuth

Banner

Go Report Card GoDoc codebeat badge GolangCI fuzzit Build Status codecov Sourcegraph GitHub tag Docker Repository GitHub

AutoAuth is Automatic Internet Portal Authentication CLI written in Golang 🛰🛰

📚 Table of contents

⛏ Installation

Go get
~$ go get -u github.com/pepodev/autoauth
Docker
~$ docker run --name autoauth -d -v ${pwd}/autoauth.yml:/autoauth.yml pepodev/autoauth

Note: docker network need ability to access external internet

Complied binary (coming soon too)

Check release page to see available binary file.

📃 Example Preset file

# Example preset file for university KMITL wifi portal
autoauth:
  name: KMITL
  encrypted: false

  login:
    endpoint: https://connect.kmitl.ac.th:8445/PortalServer/Webauth/webAuthAction!login.action
    method: POST
    header:
      - User-Agent:AutoAuth
    body:
      - [email protected]
      - password=s3cr3t_p@ssw0rd
      - authLan=en
      - validCode=200
      - hasValidateNextUpdatePassword=true
      - browserFlag=en
    timeout: 5

  logout:
    endpoint: https://connect.kmitl.ac.th:8445/PortalServer/Webauth/webAuthAction!logout.action
    method: POST
    header:
      - User-Agent:AutoAuth
      - X-XSRF-TOKEN:{token}
    timeout: 5

  heartbeat:
    endpoint: http://clients3.google.com/generate_204 # Recommended endpoint for heartbeat
    method: GET
    header:
      - User-Agent:AutoAuth
    interval: 5
    timeout: 5
    retry: 3

  save:
    - token

Note: The config also support in various format include json, toml, hcl, envfile. It's powered by Viper

📕 CLI Usage

Basic usage run this command to Start Autoauth

~$ autoauth start -f ./autoauth.yml

Or use Help command to see, What's Autoauth CLI can do for you.

~$ autoauth --help

Help Command

📝 Todo

  • Add docker image

  • Add complied binary file

  • Save key from response for use in another purpose

  • Add retries rule

  • Create preset file from CLI

  • Decrypt with key for read secret variables from preset file

  • Implement timeout from preset file

  • Write unit tests

  • Write benchmark

  • Write documents

  • Create GUI

🛒 Dependencies

  • Cobra A Commander for modern Go CLI interactions

  • Viper Go configuration with fangs

  • Fasthttp Used for httpclient. Zero memory allocations. Up to 10x faster than net/http

  • Go-ps Find, list, and inspect processes from Go (golang).

🕵️‍♀️ Contributing

Yes, Thanks for all contributor.

If you have any question or issues also check this page.

Tag summary

Content type

Image

Digest

Size

11.7 MB

Last updated

over 5 years ago

docker pull pepodev/autoauth