From 05fb34eacdbec59fb8bcdf96c82c0855e6ec78d2 Mon Sep 17 00:00:00 2001 From: skyblue Date: Mon, 7 Apr 2014 18:01:25 +0800 Subject: first works oauth2(github). need to login with /user/login/github --- models/oauth2.go | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'models') diff --git a/models/oauth2.go b/models/oauth2.go index 70dcd510..a17d4e30 100644 --- a/models/oauth2.go +++ b/models/oauth2.go @@ -1,6 +1,6 @@ package models -import "time" +import "fmt" // OT: Oauth2 Type const ( @@ -10,9 +10,30 @@ const ( ) type Oauth2 struct { - Uid int64 `xorm:"pk"` // userId - Type int `xorm:"pk unique(oauth)"` // twitter,github,google... - Identity string `xorm:"pk unique(oauth)"` // id.. - Token string `xorm:"VARCHAR(200) not null"` - RefreshTime time.Time `xorm:"created"` + Uid int64 `xorm:"pk"` // userId + Type int `xorm:"pk unique(oauth)"` // twitter,github,google... + Identity string `xorm:"pk unique(oauth)"` // id.. + Token string `xorm:"VARCHAR(200) not null"` + //RefreshTime time.Time `xorm:"created"` +} + +func AddOauth2(oa *Oauth2) (err error) { + if _, err = orm.Insert(oa); err != nil { + return err + } + return nil +} + +func GetOauth2User(identity string) (u *User, err error) { + oa := &Oauth2{} + oa.Identity = identity + exists, err := orm.Get(oa) + if err != nil { + return + } + if !exists { + err = fmt.Errorf("not exists oauth2: %s", identity) + return + } + return GetUserById(oa.Uid) } -- cgit v1.2.3