syntax = "proto3"; package account; import "google/protobuf/timestamp.proto"; service AccountService { // Accounts are a way to distinguish different players. // // Their primary purpose is tracking who has seen a trap/coffer appear to ensure reliability, // as well as allowing some basic protection against garabage data. // // We never store any character data/xiv account data in an account. rpc CreateAccount(CreateAccountRequest) returns (CreateAccountReply); rpc Login(LoginRequest) returns (LoginReply); // Ensures that the auth token we use is valid in calls. rpc Verify(VerifyRequest) returns (VerifyReply); } message CreateAccountRequest { } message CreateAccountReply { bool success = 1; string accountId = 2; } message LoginRequest { string accountId = 1; } message LoginReply { bool success = 1; string authToken = 2; google.protobuf.Timestamp expiresAt = 3; LoginError error = 4; } enum LoginError { LOGIN_ERROR_NONE = 0; LOGIN_ERROR_UNKNOWN = 1; LOGIN_ERROR_INVALID_ACCOUNT_ID = 2; } message VerifyRequest { } message VerifyReply { }