4 ms·
1) I forgot to mention - the backend is written in Go. Even if both were TS, all of the interoperability and other advantages will apply. 2) The TS classes are
by lima 8y ago
1) I forgot to mention - the backend is written in Go. Even if both were TS, all of the interoperability and other advantages will apply.
2) The TS classes are auto-generated and the protobuf definitions are the only authoritative definition.
3) We're using JWT for authentication (in particular, short-lived tokens issues by Keycloak, using their JS library). gRPC has request metadata and it was straight-forward to use it with the Keycloak library.
We generate client libraries for customers to use and give them the option of using the REST API if they don't want to deal with gRPC. We consider the gRPC API to be a competitive advantage - our customers are enterprises and like well-defined and typed interfaces.
- lachenmayer 8y agoHey, sorry if this is off-topic, but how have you been finding Keycloak? This is the first time I've seen it mentioned on here, and it looks like a great auth solution at first glance.
- segmondy 8y agoI use it and it's great.
- lima 8y agoKeycloak has been great. - Very complete OpenID Connect implementation. - Back-channel logout. - Short-lived tokens and lots of tooling to handle refreshing them. This solves many of the issues associated with JWT expiration. - Documentation is very complete. - Their data model allows for very fine-grained access control - you can issue sub-tokens with limited scopes, limit scopes per client and so on. - Easy to deploy in OpenShift/k8s. Only pain points are the build process (Java has got nothing on NodeJS as far as number of dependencies go!), data migrations and the fact that it's written in Java (start up time in CI).
- lachenmayer 8y agoThanks a lot, great to hear!
- foobiekr 8y agoExcepting jwt this is what we are doing. Typescript has been a blessing when used this way, especially for merges.