Another service we are going to make use of is the Google App Engine Users API, which provides the authentication of Google accounts (and Google Apps accounts).
Create a new file called users.go
and add the following code:
type User struct { Key *datastore.Key `json:"id" datastore:"-"` UserID string `json:"-"` DisplayName string `json:"display_name"` AvatarURL string `json:"avatar_url"` Score int `json:"score"` }
Similar to the Question
struct, we have Key
and a few fields that make up the User
entity. This struct represents an object that belongs to our application that describes a user; we will have one for every authenticated user in our system, but this isn't the same user object that we'll get from the Users API.
Importing the https://godoc.org/google.golang.org/appengine/user package and calling the user.Current(context.Context)
function will return either nil (if no user is authenticated) or a user.User
object. This object belongs to the Users...