Giter Site home page Giter Site logo

farizap / golang-cognito-example Goto Github PK

View Code? Open in Web Editor NEW

This project forked from max-pv/golang-cognito-example

0.0 0.0 0.0 17 KB

Golang example of using AWS Cognito APIs (Register, Login, Verify Phone, Refresh token)

Home Page: https://golang-cognito-example.herokuapp.com Instructions

License: MIT License

Go 35.70% HTML 64.30%

golang-cognito-example's Introduction

Golang AWS Cognito Register, Verify phone number, Login and Get User example

Just Show Me

If you are just curious how things work all together, you can find this example working at https://golang-cognito-example.herokuapp.com

Instructions

This example code demonstrates how to use AWS Cognito with AWS Go SDK in a form of simple web pages where you can:

  1. Check if username is taken
  2. Register
  3. Verify user's phone
  4. Login with username or refresh token

In order this solution to work, you need to have AWS credentials configured (file .aws/configuration exists) and User Pool created in AWS Console. You have to disable "Remember device" and enable "Sms second-factor" on authentication tab.

When the app client is created, in it's settings select "Enable username-password (non-SRP) flow for app-based authentication (USER_PASSWORD_AUTH)".

It's possible to use go sdk with client secret. You can read a bit more about generating client secrets here: https://dev.to/mcharytoniuk/using-aws-cognito-app-client-secret-hash-with-go-8ld

Build

go build -o ./build/cognito

Run

Without client secret:

AWS_PROFILE=XXX COGNITO_APP_CLIENT_ID=XXX COGNITO_USER_POOL_ID=XXX PORT=8080 ./build/cognito

With client secret:

AWS_PROFILE=XXX COGNITO_APP_CLIENT_ID=XXX COGNITO_APP_CLIENT_SECRET=XXX  COGNITO_USER_POOL_ID=XXX PORT=8080 ./build/cognito

It's worth noting that in production environment you should not pass client secrets this way because with adequate permissions it's possible to read environmental variables of a running process. Also if you call a command that way, secret hash will be stored in your shell history. You should keep those issues in mind and mitigate them in your enviroment.

Visit http://localhost:8080/ to see the list of available pages.

golang-cognito-example's People

Contributors

max-pv avatar mcharytoniuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.