Giter Club home page Giter Club logo

logto-rs's Introduction


Logto helps you build the sign-in experience and user identity within minutes.

Logto Rust Unofficial SDKs - WORK IN PROGRESS

The repo for SDKs and working samples written in Rust.

Currently there is no integration tutorial, as the project is still a work in progress

Installation

TBD

Packages

Name Description
core Logto SDK core package
utils Helper functions specified at Logto's SDK specs

Resources

Website Docs Discord

Disclaimers

  • This repo is not an official Logto repo, but it would be nice to be so one day.
  • I based my implementation going back-and-forth with Logto's SDKs in Kotlin, JS and Go. You will see that the code has a lot of similarities taken from those 3 codebases.
  • Help is needed and appreciated! This is my first Rust library, so I will be glad to have any feedback and help in organising the code better.
  • The project is not feature complete. Here is an advanced feature tracking system, also called todo list:

SDK Convention - Core

Core Done
fetchOidcConfig โœ…
generateSignInUri โœ…
generateSignOutUri โœ…
fetchTokenByAuthorizationCode โœ…
fetchTokenByRefreshToken โœ…
revoke โœ…
Utility functions Done
generateCodeVerifier โœ…
generateCodeChallenge โœ…
generateState โœ…
decodeIdToken โœ…
verifyIdToken โœ…
verifyAndParseCodeFromCallbackUri โœ…
Types Done
OidcConfigResponse โœ…
CodeTokenResponse โœ…
RefreshTokenResponse โœ…
IdTokenClaims โœ…

SDK Convention - Platform SDK

Basic Types Done
LogtoConfig โŒ
AccessToken โŒ
LogtoClient Properties Done
logtoConfig โŒ
oidcConfig โŒ
accessTokenMap โŒ
refreshToken โŒ
idToken โŒ
LogtoClient Methods Done
constructor โŒ
isAuthenticated โŒ
SignIn โŒ
SignOut โŒ
getAccessToken โŒ
getIdTokenClaims โŒ

logto-rs's People

Contributors

caioluis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

logto-rs's Issues

Improve Error Handling in Code

Currently the error handling in the library is not consistent and could benefit from some improvements on how it handles them. The snippets where we can see me dribbling the compiler need to go away, for it to be ready for production.

Check for potential vulnerabilities

Before releasing as production ready, I would like to go through it once more and check everything. I may need help, as I'm not fully aware of what could go wrong.

Improve Code Consistency

I think I could benefit from having a better convention for the SDK. I felt I was inconsistent during the development.

  • TBD: gather examples and paste them here.

Setup CI/CD

Set up GitHub Actions for automated tests on pull requests and new version tagging.

  • It could be nice to document the process so I can refer back to it and share with the junior SWE community.

Write Documentation

The code is completely undocumented, and this feels horrible

  • Document every function so it can be easily understood when using the crate.
  • It could also be nice to meta-document things, so I can share with the Discord community.
  • Link the tests to the documentation, so that it doesn't become obsolete when the code changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.