syntax = "proto3"; package slash.api.v1; import "api/v1/user_service.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; option go_package = "gen/api/v1"; service AuthService { // GetAuthStatus returns the current auth status of the user. rpc GetAuthStatus(GetAuthStatusRequest) returns (User) { option (google.api.http) = {post: "/api/v1/auth/status"}; } // SignIn signs in the user with the given username and password. rpc SignIn(SignInRequest) returns (User) { option (google.api.http) = {post: "/api/v1/auth/signin"}; } // SignInWithSSO signs in the user with the given SSO code. rpc SignInWithSSO(SignInWithSSORequest) returns (User) { option (google.api.http) = {post: "/api/v1/auth/signin/sso"}; } // SignUp signs up the user with the given username and password. rpc SignUp(SignUpRequest) returns (User) { option (google.api.http) = {post: "/api/v1/auth/signup"}; } // SignOut signs out the user. rpc SignOut(SignOutRequest) returns (google.protobuf.Empty) { option (google.api.http) = {post: "/api/v1/auth/signout"}; } } message GetAuthStatusRequest {} message SignInRequest { string email = 1; string password = 2; } message SignUpRequest { string email = 1; string nickname = 2; string password = 3; } message SignInWithSSORequest { // The name of the SSO provider. string idp_name = 1; // The code to sign in with. string code = 2; // The redirect URI. string redirect_uri = 3; } message SignOutRequest {}