| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package discord
- import (
- "encoding/json"
- "github.com/ayntgl/discordgo"
- )
- type LoginResponse struct {
- Ticket string `json:"ticket"`
- Token string `json:"token"`
- MFA bool `json:"mfa"`
- SMS bool `json:"sms"`
- }
- func Login(s *discordgo.Session, email string, password string) (*LoginResponse, error) {
- data := struct {
- Email string `json:"email"`
- Password string `json:"password"`
- }{email, password}
- resp, err := s.RequestWithBucketID(
- "POST",
- discordgo.EndpointLogin,
- data,
- discordgo.EndpointLogin,
- )
- if err != nil {
- return nil, err
- }
- var lr LoginResponse
- err = json.Unmarshal(resp, &lr)
- if err != nil {
- return nil, err
- }
- return &lr, nil
- }
- func TOTP(s *discordgo.Session, code string, ticket string) (*LoginResponse, error) {
- data := struct {
- Code string `json:"code"`
- Ticket string `json:"ticket"`
- }{code, ticket}
- e := discordgo.EndpointAuth + "mfa/totp"
- resp, err := s.RequestWithBucketID("POST", e, data, e)
- if err != nil {
- return nil, err
- }
- var lr LoginResponse
- err = json.Unmarshal(resp, &lr)
- if err != nil {
- return nil, err
- }
- return &lr, nil
- }
|