|  | @@ -5,14 +5,14 @@
 | 
											
												
													
														|  |  package user
 |  |  package user
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import (
 |  |  import (
 | 
											
												
													
														|  | -	"encoding/json"
 |  | 
 | 
											
												
													
														|  | 
 |  | +	// "encoding/json"
 | 
											
												
													
														|  |  	"fmt"
 |  |  	"fmt"
 | 
											
												
													
														|  |  	"net/url"
 |  |  	"net/url"
 | 
											
												
													
														|  |  	"strings"
 |  |  	"strings"
 | 
											
												
													
														|  | -	"code.google.com/p/goauth2/oauth"
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	// "code.google.com/p/goauth2/oauth"
 | 
											
												
													
														|  |  	"github.com/go-martini/martini"
 |  |  	"github.com/go-martini/martini"
 | 
											
												
													
														|  | -	"github.com/martini-contrib/oauth2"
 |  | 
 | 
											
												
													
														|  | 
 |  | +	// "github.com/martini-contrib/oauth2"
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	"github.com/gogits/gogs/models"
 |  |  	"github.com/gogits/gogs/models"
 | 
											
												
													
														|  |  	"github.com/gogits/gogs/modules/auth"
 |  |  	"github.com/gogits/gogs/modules/auth"
 | 
											
										
											
												
													
														|  | @@ -78,41 +78,41 @@ func Profile(ctx *middleware.Context, params martini.Params) {
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  // github && google && ...
 |  |  // github && google && ...
 | 
											
												
													
														|  | -func SocialSignIn(tokens oauth2.Tokens) {
 |  | 
 | 
											
												
													
														|  | -	transport := &oauth.Transport{}
 |  | 
 | 
											
												
													
														|  | -	transport.Token = &oauth.Token{
 |  | 
 | 
											
												
													
														|  | -		AccessToken:  tokens.Access(),
 |  | 
 | 
											
												
													
														|  | -		RefreshToken: tokens.Refresh(),
 |  | 
 | 
											
												
													
														|  | -		Expiry:       tokens.ExpiryTime(),
 |  | 
 | 
											
												
													
														|  | -		Extra:        tokens.ExtraData(),
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	// Github API refer: https://developer.github.com/v3/users/
 |  | 
 | 
											
												
													
														|  | -	// FIXME: need to judge url
 |  | 
 | 
											
												
													
														|  | -	type GithubUser struct {
 |  | 
 | 
											
												
													
														|  | -		Id    int    `json:"id"`
 |  | 
 | 
											
												
													
														|  | -		Name  string `json:"login"`
 |  | 
 | 
											
												
													
														|  | -		Email string `json:"email"`
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	// Make the request.
 |  | 
 | 
											
												
													
														|  | -	scope := "https://api.github.com/user"
 |  | 
 | 
											
												
													
														|  | -	r, err := transport.Client().Get(scope)
 |  | 
 | 
											
												
													
														|  | -	if err != nil {
 |  | 
 | 
											
												
													
														|  | -		log.Error("connect with github error: %s", err)
 |  | 
 | 
											
												
													
														|  | -		// FIXME: handle error page
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	defer r.Body.Close()
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	user := &GithubUser{}
 |  | 
 | 
											
												
													
														|  | -	err = json.NewDecoder(r.Body).Decode(user)
 |  | 
 | 
											
												
													
														|  | -	if err != nil {
 |  | 
 | 
											
												
													
														|  | -		log.Error("Get: %s", err)
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	log.Info("login: %s", user.Name)
 |  | 
 | 
											
												
													
														|  | -	// FIXME: login here, user email to check auth, if not registe, then generate a uniq username
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | 
 |  | +// func SocialSignIn(tokens oauth2.Tokens) {
 | 
											
												
													
														|  | 
 |  | +// 	transport := &oauth.Transport{}
 | 
											
												
													
														|  | 
 |  | +// 	transport.Token = &oauth.Token{
 | 
											
												
													
														|  | 
 |  | +// 		AccessToken:  tokens.Access(),
 | 
											
												
													
														|  | 
 |  | +// 		RefreshToken: tokens.Refresh(),
 | 
											
												
													
														|  | 
 |  | +// 		Expiry:       tokens.ExpiryTime(),
 | 
											
												
													
														|  | 
 |  | +// 		Extra:        tokens.ExtraData(),
 | 
											
												
													
														|  | 
 |  | +// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 	// Github API refer: https://developer.github.com/v3/users/
 | 
											
												
													
														|  | 
 |  | +// 	// FIXME: need to judge url
 | 
											
												
													
														|  | 
 |  | +// 	type GithubUser struct {
 | 
											
												
													
														|  | 
 |  | +// 		Id    int    `json:"id"`
 | 
											
												
													
														|  | 
 |  | +// 		Name  string `json:"login"`
 | 
											
												
													
														|  | 
 |  | +// 		Email string `json:"email"`
 | 
											
												
													
														|  | 
 |  | +// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 	// Make the request.
 | 
											
												
													
														|  | 
 |  | +// 	scope := "https://api.github.com/user"
 | 
											
												
													
														|  | 
 |  | +// 	r, err := transport.Client().Get(scope)
 | 
											
												
													
														|  | 
 |  | +// 	if err != nil {
 | 
											
												
													
														|  | 
 |  | +// 		log.Error("connect with github error: %s", err)
 | 
											
												
													
														|  | 
 |  | +// 		// FIXME: handle error page
 | 
											
												
													
														|  | 
 |  | +// 		return
 | 
											
												
													
														|  | 
 |  | +// 	}
 | 
											
												
													
														|  | 
 |  | +// 	defer r.Body.Close()
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 	user := &GithubUser{}
 | 
											
												
													
														|  | 
 |  | +// 	err = json.NewDecoder(r.Body).Decode(user)
 | 
											
												
													
														|  | 
 |  | +// 	if err != nil {
 | 
											
												
													
														|  | 
 |  | +// 		log.Error("Get: %s", err)
 | 
											
												
													
														|  | 
 |  | +// 	}
 | 
											
												
													
														|  | 
 |  | +// 	log.Info("login: %s", user.Name)
 | 
											
												
													
														|  | 
 |  | +// 	// FIXME: login here, user email to check auth, if not registe, then generate a uniq username
 | 
											
												
													
														|  | 
 |  | +// }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  func SignIn(ctx *middleware.Context, form auth.LogInForm) {
 |  |  func SignIn(ctx *middleware.Context, form auth.LogInForm) {
 | 
											
												
													
														|  |  	ctx.Data["Title"] = "Log In"
 |  |  	ctx.Data["Title"] = "Log In"
 |