MCPcopy Create free account
hub / github.com/daodst/chat / QueryLoginToken

Method QueryLoginToken

userapi/internal/api_logintoken.go:53–78  ·  view source on GitHub ↗

QueryLoginToken returns the data associated with a login token. If the token is not valid, success is returned, but res.Data == nil.

(ctx context.Context, req *api.QueryLoginTokenRequest, res *api.QueryLoginTokenResponse)

Source from the content-addressed store, hash-verified

51// QueryLoginToken returns the data associated with a login token. If
52// the token is not valid, success is returned, but res.Data == nil.
53func (a *UserInternalAPI) QueryLoginToken(ctx context.Context, req *api.QueryLoginTokenRequest, res *api.QueryLoginTokenResponse) error {
54 tokenData, err := a.DB.GetLoginTokenDataByToken(ctx, req.Token)
55 if err != nil {
56 res.Data = nil
57 if err == sql.ErrNoRows {
58 return nil
59 }
60 return err
61 }
62 localpart, domain, err := gomatrixserverlib.SplitID('@', tokenData.UserID)
63 if err != nil {
64 return err
65 }
66 if domain != a.ServerName {
67 return fmt.Errorf("cannot return a login token for a remote user: got %s want %s", domain, a.ServerName)
68 }
69 if _, err := a.DB.GetAccountByLocalpart(ctx, localpart); err != nil {
70 res.Data = nil
71 if err == sql.ErrNoRows {
72 return nil
73 }
74 return err
75 }
76 res.Data = tokenData
77 return nil
78}

Callers

nothing calls this directly

Calls 1

GetAccountByLocalpartMethod · 0.80

Tested by

no test coverage detected