Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3115446
D3573.id11131.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
D3573.id11131.diff
View Options
diff --git a/services/identity/proto/identity.proto b/services/identity/proto/identity.proto
new file mode 100644
--- /dev/null
+++ b/services/identity/proto/identity.proto
@@ -0,0 +1,107 @@
+syntax = "proto3";
+
+package identity;
+
+service IdentityService {
+ // Called by user to register with the Identity Service (PAKE only)
+ rpc RegisterUser(stream RegistrationRequest) returns (RegistrationResponse) {}
+ // Called by user to create an active session and get an access token
+ rpc LoginUser(stream LoginRequest) returns (LoginResponse) {}
+ // Called by other services to get a user's token
+ rpc GetUserToken(GetUserTokenRequest) returns (GetUserTokenResponse) {}
+}
+
+// Helper types
+
+message PakeRegistrationRequestAndUserID {
+ string userID = 1;
+ bytes pakeRegistrationRequest = 2;
+}
+
+message pakeCredentialRequestAndUserID {
+ string userID = 1;
+ bytes pakeCredentialRequest = 2;
+}
+
+message PakeLoginRequest {
+ oneof data {
+ pakeCredentialRequestAndUserID pakeCredentialRequestAndUserID = 1;
+ bytes pakeCredentialFinalization = 2;
+ }
+}
+
+message PakeLoginResponse {
+ bytes pakeCredentialResponse = 1;
+}
+
+message WalletLoginRequest {
+ string userID = 1;
+ string walletAddress = 2;
+ bytes signedMessage = 3;
+}
+
+message WalletLoginResponse {
+ bytes token = 1;
+}
+
+// RegisterUser
+
+message RegistrationRequest {
+ oneof data {
+ PakeRegistrationRequestAndUserID pakeRegistrationRequestAndUserID = 1;
+ bytes pakeRegistrationUpload = 2;
+ }
+}
+
+message RegistrationResponse {
+ bytes pakeRegistrationResponse = 1;
+}
+
+// LoginUser
+
+message LoginRequest {
+ oneof data {
+ PakeLoginRequest pakeLoginRequest = 1;
+ WalletLoginRequest walletLoginRequest = 2;
+ }
+}
+
+message LoginResponse {
+ oneof data {
+ PakeLoginResponse pakeLoginResponse = 1;
+ WalletLoginResponse walletLoginResponse = 2;
+ }
+}
+
+// GetUserToken
+
+message GetUserTokenRequest {
+ string userID = 1;
+}
+
+message GetUserTokenResponse {
+ bytes token = 2;
+}
+
+
+/**
+ * Database - Structure:
+ * token
+ * userID[PK] string
+ * created timestamp
+ * token bytes
+ * registrationData bytes
+ * valid boolean
+ */
+
+/**
+ * Database - Description:
+ * token - tokens assigned to users along with the data necessary to retrieve
+ * them
+ * `created` - when the token was created
+ * `registrationData` - serialized data described by one of the
+ * following structures
+ * { authType: 'password', pakePasswordCiphertext: string }
+ * { authType: 'wallet', walletAddress: string }
+ * `valid` - false if the token has been revoked
+ */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Nov 1, 9:29 PM (22 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2401849
Default Alt Text
D3573.id11131.diff (2 KB)
Attached To
Mode
D3573: [draft][services][identity] Initial .proto file for identity service
Attached
Detach File
Event Timeline
Log In to Comment