日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)IRIS教程:iris使用基本身份驗證

HTTP 基本身份驗證是對 Web 資源實施訪問控制的最簡單技術,因為它不需要 cookie、會話標識符或登錄頁面;相反,HTTP Basic 身份驗證使用 HTTP 標頭中的標準字段。

基本身份驗證中間件包含在 iris 框架中,因此您無需單獨安裝。

導入中間件:

import "github.com/kataras/iris/v12/middleware/basicauth"

使用其?Options?結構配置中間件:

opts := basicauth.Options{
    Allow: basicauth.AllowUsers(map[string]string{
        "username": "password",
    }),
    Realm:        "Authorization Required",
    ErrorHandler: basicauth.DefaultErrorHandler,
    // [...more options]
}

初始化中間件:

auth := basicauth.New(opts)

上述步驟與Default功能相同:

auth := basicauth.Default(map[string]string{
    "username": "password",
})

使用自定義的用戶切片:

// The struct value MUST contain a Username and Passwords fields
// or GetUsername() string and GetPassword() string methods.
type User struct {
    Username string
    Password string
}

// [...]
auth := basicauth.Default([]User{...})

可選地從文件加載用戶,密碼使用bcrypt加密:

bcrypt包:GOlang.org/x/crypto/bcrypt

auth := basicauth.Load("users.yml", basicauth.BCRYPT)

同樣可以使用Options(推薦)實現(xiàn):

opts := basicauth.Options{
    Allow: basicauth.AllowUsersFile("users.yml", basicauth.BCRYPT),
    Realm: basicauth.DefaultRealm,
    // [...more options]
}

auth := basicauth.New(opts)

users.yml將如下所示:

- username: kataras
  password: $2a$10$Irg8k8HWkDlvL0YDBKLCYee6j6zzIFTplJcvZYKA.B8/clHPZn2Ey
  # encrypted of kataras_pass
  role: admin
- username: makis
  password: $2a$10$3GXzp3J5GhHThGisbpvpZuftbmzPivDMo94XPnkTnDe7254x7sJ3O
  # encrypted of makis_pass
  role: member

注冊中間件:

// Register to all matched routes
// under a Party and its children.
app.Use(auth)

// OR/and register to all http error routes.
app.UseError(auth)

// OR register under a path prefix of a specific Party,
// including all http errors of this path prefix.
app.UseRouter(auth)

// OR register to a specific Route before its main handler.
app.Post("/protected", auth, routeHandler)

檢索用戶名和密碼:

func routeHandler(ctx iris.Context) {
    username, password, _ := ctx.Request().BasicAuth()
    // [...]
}

檢索 User 值:

func routeHandler(ctx iris.Context) {
    user := ctx.User().(*iris.SimpleUser)
    // user.Username
    // user.Password
}

分享文章:創(chuàng)新互聯(lián)IRIS教程:iris使用基本身份驗證
轉載來于:http://m.5511xx.com/article/djighod.html