auth

Paddy 2014-08-16 Parent:fc5df8e68c7b Child:9fe684b33b3d

17:1f04b1146cad Go to Latest

auth/storage.go

Implement CSRF prevention and pass info to confirmation. Implement CSRF prevention using the nosurf package. Note that the handler still needs to be wrapped before this will work. Pass info on the authorization being requested (namely the client and the scope) to the RenderConfirmation page so that the user can make an educated decision.

History
paddy@6 1 package auth
paddy@0 2
paddy@1 3 import "secondbit.org/uuid"
paddy@0 4
paddy@1 5 type ClientStore interface {
paddy@1 6 GetClient(id uuid.ID) (Client, error)
paddy@1 7 CreateClient(name, logo, redirectURI string, owner uuid.ID) (Client, error)
paddy@12 8 UpdateClient(client uuid.ID, name, logo, redirectURI *string) error
paddy@15 9 RemoveClient(id uuid.ID) error
paddy@12 10 ListClients(id uuid.ID, page, num int) ([]Client, error)
paddy@1 11 }
paddy@0 12
paddy@1 13 type TokenStore interface {
paddy@1 14 SaveAuthorization(AuthorizeData) error
paddy@1 15 GetAuthorization(code string) (AuthorizeData, error)
paddy@1 16 RemoveAuthorization(code string) error
paddy@0 17
paddy@1 18 SaveAccess(AccessData) error
paddy@1 19 GetAccess(token string) (AccessData, error)
paddy@0 20 RemoveAccess(token string) error
paddy@0 21
paddy@1 22 GetRefresh(token string) (AccessData, error)
paddy@0 23 RemoveRefresh(token string) error
paddy@0 24 }
paddy@1 25
paddy@1 26 type ProfileStore interface {
paddy@1 27 GetProfile(username, password string) (uuid.ID, error)
paddy@1 28 }