本文整理汇总了Golang中dozy.AuthContext.Login方法的典型用法代码示例。如果您正苦于以下问题:Golang AuthContext.Login方法的具体用法?Golang AuthContext.Login怎么用?Golang AuthContext.Login使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dozy.AuthContext
的用法示例。
在下文中一共展示了AuthContext.Login方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetAuthtokenEmail
func GetAuthtokenEmail(reqJson []byte, qs map[string][]string, uri []string, ac *dozy.AuthContext, rawDb interface{}) (uint, []byte, string) {
db := rawDb.(GetAuthtokenEmailDb)
var resJson map[string]interface{}
if ac.GetLoggedIn() {
return dozy.StatusIncorrectPermissions, []byte(""), ""
}
getHashStatus, hash, userId := db.GetUserHashIdByEmail(qs["email"][0])
if getHashStatus == mongodb.ReadSucceeded {
loginOk, needNewHash, newHash := ac.Login(userId, qs["password"][0], hash)
if loginOk {
resJson = map[string]interface{}{
"succeeded": true,
"authtoken": ac.GetAuthtoken(),
"userId": ac.GetUserId(),
}
if needNewHash {
updateHashStatus := db.UpdateHashById(userId, newHash)
if updateHashStatus != mongodb.WriteSucceeded {
panic(updateHashStatus)
}
}
} else {
resJson = map[string]interface{}{
"succeeded": false,
"failedDueToBadPassword": true,
"failedDueToBadUsername": false,
}
}
} else if getHashStatus == mongodb.ReadNotFound {
resJson = map[string]interface{}{
"succeeded": false,
"failedDueToBadPassword": false,
"failedDueToBadUsername": true,
}
} else {
panic(getHashStatus)
}
resJsonBytes, marshalErr := json.Marshal(resJson)
if marshalErr != nil {
panic(marshalErr)
}
return dozy.StatusGetOk, resJsonBytes, ""
}