YD
Size: a a a
YD
SG
SG
UU
UU
UU
SG
YY
UU
UU
type Mutation {
...
signup(email: String!, password: String!, username: String!, name: String): String!
login(email: String!, password: String!): String!
}
YY
type Mutation {
...
signup(email: String!, password: String!, username: String!, name: String): String!
login(email: String!, password: String!): String!
}
input EmailCredentials {
email: String!
password: String!
}
input PhoneCredentials {
phone: String!
2fa: String!
}
union SignupCredentials = EmailCredentials | PhoneCredentials
union SigninCredentials = EmailCredentials | PhoneCredentials
enum UserStatus {
NEW
NEEDS_CONFIRM
PW_RESET
PHONE_RESET
SIGNEDIN
BANNED
}
type AuthToken {
userID: ID!
role: String!
status: UserStatus!
validBefore: DateTime!
token: String
hmac: String
}
type Mutation {
signup(credentials: SignupCredentials!): AuthToken
}
directive @authorized(
token: AuthToken
) on FIELD_DEFINITION | ENUM_VALUE
type PublicData {
dateOfBirth: DateTime!
}
type PrivateData {
email: String!
secret: String!
}
type data {
public: PublicData!
private: PrivateData!
}
query AllData(token: AuthToken!) {
data {
@authorized(token) public
@authorized(token) private
}
}
YY
token: String
hmac: String
M
SG
KY
SG
SG
SG
IN
KY