MCPcopy
hub / github.com/pocketbase/pocketbase / FetchAuthUser

Method FetchAuthUser

tools/auth/facebook.go:44–80  ·  view source on GitHub ↗

FetchAuthUser returns an AuthUser instance based on the Facebook's user api. API reference: https://developers.facebook.com/docs/graph-api/reference/user/

(token *oauth2.Token)

Source from the content-addressed store, hash-verified

42//
43// API reference: https://developers.facebook.com/docs/graph-api/reference/user/
44func (p *Facebook) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
45 data, err := p.FetchRawUserInfo(token)
46 if err != nil {
47 return nil, err
48 }
49
50 rawUser := map[string]any{}
51 if err := json.Unmarshal(data, &rawUser); err != nil {
52 return nil, err
53 }
54
55 extracted := struct {
56 Id string
57 Name string
58 Email string
59 Picture struct {
60 Data struct{ Url string }
61 }
62 }{}
63 if err := json.Unmarshal(data, &extracted); err != nil {
64 return nil, err
65 }
66
67 user := &AuthUser{
68 Id: extracted.Id,
69 Name: extracted.Name,
70 Email: extracted.Email,
71 AvatarURL: extracted.Picture.Data.Url,
72 RawUser: rawUser,
73 AccessToken: token.AccessToken,
74 RefreshToken: token.RefreshToken,
75 }
76
77 user.Expiry, _ = types.ParseDateTime(token.Expiry)
78
79 return user, nil
80}

Callers

nothing calls this directly

Calls 2

ParseDateTimeFunction · 0.92
FetchRawUserInfoMethod · 0.65

Tested by

no test coverage detected