MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / Login

Method Login

pkg/account/user.go:97–129  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

95var errParse = errors.DefineAborted("parse", "request body parsing")
96
97func (s *server) Login(w http.ResponseWriter, r *http.Request) {
98 var loginRequest loginRequest
99 switch r.Header.Get("Content-Type") {
100 case "application/json":
101 if err := json.NewDecoder(r.Body).Decode(&loginRequest); err != nil {
102 webhandlers.Error(w, r, errParse.WithCause(err))
103 return
104 }
105 default:
106 if err := r.ParseForm(); err != nil {
107 webhandlers.Error(w, r, errParse.WithCause(err))
108 return
109 }
110 if err := s.schemaDecoder.Decode(&loginRequest, r.Form); err != nil {
111 webhandlers.Error(w, r, errParse.WithCause(err))
112 return
113 }
114 }
115 ctx := r.Context()
116 if err := loginRequest.ValidateContext(ctx); err != nil {
117 webhandlers.Error(w, r, err)
118 return
119 }
120 if err := s.session.DoLogin(ctx, loginRequest.UserID, loginRequest.Password); err != nil {
121 webhandlers.Error(w, r, err)
122 return
123 }
124 if err := s.CreateUserSession(w, r, &ttnpb.UserIdentifiers{UserId: loginRequest.UserID}); err != nil {
125 webhandlers.Error(w, r, err)
126 return
127 }
128 w.WriteHeader(http.StatusNoContent)
129}
130
131type tokenLoginRequest struct {
132 Token string `json:"token" schema:"token"`

Callers

nothing calls this directly

Calls 9

ValidateContextMethod · 0.95
CreateUserSessionMethod · 0.95
ErrorFunction · 0.92
NewDecoderMethod · 0.80
DoLoginMethod · 0.80
GetMethod · 0.65
DecodeMethod · 0.65
ContextMethod · 0.65
WithCauseMethod · 0.45

Tested by

no test coverage detected