//RegistrationHandler Hndler for register method func RegistrationHandler(context *gin.Context, database *db.Context) { model := models.RegisterModel{} err := context.BindJSON(&model) if err != nil { context.AbortWithStatus(http.StatusBadRequest) return } salt := make([]byte, 128) _, err = rand.Read(salt) if err != nil { context.AbortWithError(http.StatusInternalServerError, err) return } var password []byte password, err = util.GeneratePassword([]byte(model.Password), salt) if err != nil { context.AbortWithError(http.StatusInternalServerError, err) return } user := db.User{ ID: bson.NewObjectId(), Username: model.Username, Email: model.Email, Password: base64.URLEncoding.EncodeToString(password), Salt: base64.URLEncoding.EncodeToString(salt), } database.DB().C("users").Insert(user) context.JSON(http.StatusOK, "") }