原创 golang image: unknown format 錯誤解決

當使用image.Decode處理圖片文件時,如報image: unknown format 錯誤。 示例 package main import ( "fmt" "image" "os" ) func main()

原创 Go1.14版本 新特性

簡介 最新的 Go 版本 1.14 在 Go 1.13 之後六個月到達。它的主要更改是工具鏈、運行時和庫的實現。該版本一如既往保持 Go 1的兼容性承諾。我們預計幾乎所有的 Go 程序都能夠繼續編譯和運行。 Go Module已經

原创 nginx優化https(ocsp)

前言 當用戶使用客戶端或其他的設備訪問https網站時,需要先驗證https證書,驗證方式有兩種: 證書頒發機構(ca)的證書吊銷列表(CRL),CRL列出被認爲不能再使用的證書的序列號。客戶端通過訪問CRL來驗證網站證書是否

原创 vue-element-admin 上傳upload圖片慢問題處理

前言 vue-element-admin自帶上傳圖片組件,在使用的過程中發現上傳速度很慢,尤其是上傳一些大圖需要耗時幾十秒不能忍受。出現這種情況,是因爲upload組件會將圖片上傳到action="https://httpbin.

原创 golang 單點登錄系統(go-sso)

這是一個基於Go語言開發的單點登錄系統,實現手機號註冊、手機號+驗證碼登錄、手機號+密碼登錄、賬號登出等功能,用戶認證採用cookie和jwt兩種方式。收發短信相關方法已提供,僅需根據短信通道提供商提供的接口做相應的參數配置即可使

原创 gin集成swagger構建api文檔

官方文檔 gin-swagger swagger-doc 具體步驟如下: 安裝 swag go get github.com/swaggo/swag/cmd/swag 一般安裝比較慢,這裏我先安裝了go mod 藉助http

原创 golang 通過reflect 獲取struct信息

本示例主要通過反射,瞭解struct或變量的相關信息,方便調試代碼等。 示例: package main import ( "fmt" "reflect"

原创 golang開發筆記

1.0 Go環境配置 1.1 Go安裝 1.2 目錄結構 1.3 Go命令 1.4 開發工具 1.5 依賴管理(dep) 1.6 Go 各版本特性 1.7 調試工具Delve 1.8 Go 性能測試工具PProf 1.9 G

原创 golang之JWT實現

什麼是JSON Web Token? JSON Web Token(JWT)是一個開放標準(RFC 7519),它定義了一種緊湊且自包含的方式,用於在各方之間以JSON方式安全地傳輸信息。由於此信息是經過數字簽名的,因此可以被驗證

原创 golang之數據驗證validator

前言 在web應用中經常會遇到數據驗證問題,普通的驗證方法比較繁瑣,這裏介紹一個使用比較多的包validator。 原理 將驗證規則寫在struct對字段tag裏,再通過反射(reflect)獲取struct的tag,實現數據驗證

原创 vue-element-admin 後臺動態加載菜單

前言 做後臺項目,權限驗證與安全性是非常重要的,vue-element-admin官方主要介紹了前端控制用戶菜單加載顯示,以及權限控制。這就帶來一些不便,服務端無法(這裏可能說的絕對了,起碼實現起來不太友好)控制菜單的動態展示,用

原创 go-admin 開源後臺管理系統

go-admin go-admin是一個go語言開發的後臺管理系統,該系統以角色爲基礎的權限管理設計(RBAC),完成了系統管理模塊功能的開發(其他示例模塊後續加上),採用前後端分離實現方式,服務端基於go開源gin框架,前端開源

原创 layui省市區三級聯動插件

這個是一個layui省市區三級聯動插件,近來使用layui後臺模板框架開發後臺系統,要用到省市縣/區三級聯動,本想從網上找個現成的輪子,然沒有自己想要的需求,就自己造了個。 本插件實現省市區相應數據通過ajax動態從服務端加載數據

原创 微信小程序發送模板消息

微信小程序還提供了給客服發送模板消息的功能,以便商家給客戶發送通知。 官方文檔 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/tem

原创 Golang 下載文件

這裏使用net/http下載文件,可以設置Content-Type(具體參考)告訴客戶端返回的內容類型實際上是什麼,實現不同方式的文件的下載。 示例 package main import ( "fmt" "io/iouti