- fix bug in UnionFindAuthBind

This commit is contained in:
gazebo
2019-03-09 14:20:21 +08:00
parent 960a022b25
commit 4b362baea9
3 changed files with 10 additions and 2 deletions

View File

@@ -43,7 +43,14 @@ func (a *DefAuther) Logout(authInfo *auth2.AuthInfo) error {
func (a *DefAuther) UnionFindAuthBind(curAuthType string, unionAuthTypeList []string, openID, unionID string, authDetail interface{}) (authBindEx *auth2.AuthBindEx, err error) {
db := dao.GetDB()
var authBind *model.AuthBind
if authBind, err = dao.GetAuthBind(db, "", curAuthType, openID); dao.IsNoRowsError(err) { // 直接找
if authBind, err = dao.GetAuthBind(db, "", curAuthType, openID); err == nil { // 直接找到
authBindEx = &auth2.AuthBindEx{
AuthBind: *authBind,
}
if authDetail != nil {
authBindEx.DetailData = string(utils.MustMarshal(authDetail))
}
} else if dao.IsNoRowsError(err) { // 直接找不到尝试unionID
if unionID != "" { // 且有unionID
var authBindList []*model.AuthBind
if authBindList, err = dao.GetAuthBindsByAuthID2(db, unionID, unionAuthTypeList); err == nil && len(authBindList) > 0 { // 通过unionID找到至少一个认证方式