syntax = "proto3"; option go_package = ".;providerpb"; package proto; message InitReq { string client_id = 1; string client_secret = 2; string redirect_url = 3; } message GetTokenReq { string code = 1; } message Token { string access_token = 1; string token_type = 2; string refresh_token = 3; int64 expiry = 4; } message RefreshTokenReq { string refresh_token = 1; } message RefreshTokenResp { Token token = 1; } message ProviderResp { string name = 1; } message NewAuthURLReq { string state = 1; } message NewAuthURLResp { string url = 1; } message GetUserInfoReq { Token token = 1; } message GetUserInfoResp { string username = 1; string provider_user_id = 2; } message Enpty {} service Oauth2Plugin { rpc Init(InitReq) returns (Enpty) {} rpc Provider(Enpty) returns (ProviderResp) {} rpc NewAuthURL(NewAuthURLReq) returns (NewAuthURLResp) {} rpc GetToken(GetTokenReq) returns (Token) {} rpc RefreshToken(RefreshTokenReq) returns (RefreshTokenResp) {} rpc GetUserInfo(GetUserInfoReq) returns (GetUserInfoResp) {} }