AuthPlayer authenticates with PsyNet via EGS and returns a WebSocket connection.
(authToken string, accountID string, accountName string)
| 31 | |
| 32 | // AuthPlayer authenticates with PsyNet via EGS and returns a WebSocket connection. |
| 33 | func (p *PsyNet) AuthPlayer(authToken string, accountID string, accountName string) (*PsyNetRPC, error) { |
| 34 | localPlayerId := NewPlayerID(PlatformEpic, accountID) |
| 35 | req := &AuthPlayerRequest{ |
| 36 | Platform: string(PlatformEpic), |
| 37 | PlayerName: accountName, |
| 38 | PlayerID: accountID, |
| 39 | Language: "INT", |
| 40 | AuthTicket: authToken, |
| 41 | BuildRegion: "", |
| 42 | FeatureSet: p.featureSet, |
| 43 | Device: "PC", |
| 44 | LocalFirstPlayerID: localPlayerId.String(), |
| 45 | SkipAuth: false, |
| 46 | SetAsPrimaryAccount: true, |
| 47 | EpicAuthTicket: authToken, |
| 48 | EpicAccountID: accountID, |
| 49 | } |
| 50 | |
| 51 | var res AuthPlayerResponse |
| 52 | err := p.postJSON([]string{"Auth", "AuthPlayer", "v2"}, req, &res) |
| 53 | if err != nil { |
| 54 | return nil, fmt.Errorf("failed to authenticate player: %w", err) |
| 55 | } |
| 56 | |
| 57 | rpc, err := p.establishSocket(res.PerConURLv2, localPlayerId, res.PsyToken, res.SessionID) |
| 58 | if err != nil { |
| 59 | return nil, fmt.Errorf("failed to establish websocket: %w", err) |
| 60 | } |
| 61 | |
| 62 | go rpc.readMessages() |
| 63 | rpc.schedulePing() |
| 64 | |
| 65 | return rpc, nil |
| 66 | } |
| 67 | |
| 68 | // AuthPlayerSteam authenticates with PsyNet via Steam session ticket and returns a WebSocket connection. |
| 69 | func (p *PsyNet) AuthPlayerSteam(authToken string, epicAccountID string, steamAccountID string, accountName string) (*PsyNetRPC, error) { |
no test coverage detected