Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

[Coming Soon] CrossAuth: Cross-Platform Authentication Made Simple for Unity

Discussion in 'Assets and Asset Store' started by Zappyy, Aug 2, 2023.

  1. Zappyy


    Jun 9, 2018
    Hello fellow developers,

    I'm happy to announce a project I've been working on that I believe will greatly streamline and enhance your game development process, regardless of the platform: CrossAuth.

    CrossAuth is a platform-agnostic solution designed to simplify user authentication across a range of identity providers. Although it's built with Unity in mind, the core of CrossAuth is engineered separately from Unity-specific features, making it versatile and adaptable to other environments.

    What is CrossAuth?
    CrossAuth is a lightweight, flexible, and easy-to-use tool that allows for user authentication via an array of identity providers. The initial version supports widely-used providers like Google, Steam, Twitter (X), GitHub, LinkedIn, Meta (formerly Facebook), Azure, and Discord. It's a unified solution, enabling you to select and integrate the authentication methods that best align with your project's needs.

    Why CrossAuth?
    CrossAuth's main goal is to simplify the complex process of integrating multiple login providers into your projects. With CrossAuth, you can:
    • Enable multiple authentication providers swiftly and easily.
    • Authenticate users across supported providers without diving into provider-specific code.
    • Utilize the authentication tokens returned by these providers for managing user sessions, personalization, and more.
    • Save precious time and energy that you can dedicate to enhancing the gameplay experience.

    Although designed with Unity in mind, CrossAuth's core modules are not Unity-dependent, meaning they can be easily ported and used in different environments. This makes CrossAuth not just a Unity asset, but a universal solution for developers across platforms.

    I Need Your Input!
    As I'm gearing up for the CrossAuth launch, your feedback is highly valuable. My mission is to create a tool that genuinely addresses the needs of developers. Your insights and suggestions will guide me to refine CrossAuth to maximize the benefits for all its users.

    I'd love to hear:
    • What features would you like to see incorporated into CrossAuth?
    • What additional identity providers would you find useful in future updates?
    • Any other thoughts, ideas, or suggestions you might have.

    Thank you for your time, and I look forward to hearing your valuable insights!

    Best Regards
    Asset Store
    BetaMark likes this.
  2. BetaMark


    Sep 27, 2014
    I would say that for me, developer ease of use get me started (e.g. a prefab or a few lines of code I just drop into scene), but long term -- documentation that documents all of the use case happy paths, and maybe a support forum for all the non-happy path use cases that I'll stumble into (what if a user authenticated with Discord last week, but now wants to use their steam account). Documentation, an active discord or Forum, and maybe even a collection of quick / updated videos would keep me happy longer term.

    As for features:
    * anon login (to get a per device / unique ID if not logged in yet)
    * ability to test and debug each side (client and auth provider) at each step of the A&A cycle (user, pass, provider link token, authorization level if applicable)
    * ability to upgrade anon login to a paired / authenticated login
    * ability to identify auth type and source platform for cross play or per platform user segmenting
    * reporting on user auth attempts, auth failures, auth success
    * ability to CRUD users and their stored data (including logout, reset, ban)

    I'm literally have a card in my upcoming backlog to add A&A to my Mirror based / Steam authed game, so I've been reading a lot and thinking about how I want to tool this. Feel free to ask me about anything else around A&A or the multiplayer developer experience in Unity right now.
    Zappyy likes this.
  3. Zappyy


    Jun 9, 2018
    Thank you for sharing your thoughts.

    When it comes to ease of use and documentation, I completely agree. A frictionless, intuitive user interface coupled with comprehensive, detailed documentation are cornerstones for any effective developer tool.

    In order to ensure this, CrossAuth is designed to feature platform-independent, customizable loggers and easy-to-understand logs. This functionality will enable developers to quickly understand the sequence of events at every stage of the process. This architecture will also facilitate a smooth transition of CrossAuth to standard Visual Studio C# projects.

    As for User Database, I believe in the idea of providing developers with the flexibility to integrate their own preferred database solution that best suits their specific needs. Keeping this in mind, CrossAuth will be designed to emit an event to inform the application when a user has successfully authenticated through a specific identity provider.

    The core purpose of CrossAuth is to provide user authentication across a multitude of identity providers. Including built-in database features might risk adding unnecessary complexity, potentially making the tool overcomplicated.

    However, I fully appreciate the diverse needs of the developer community. So, if there's significant demand for an integrated database solution within CrossAuth, I'm entirely open to considering it.

    Would it be helpful for CrossAuth to offer different packages, one that's simple and streamlined, and another with more advanced features like integrated databases? This approach would allow me to offer a more cost-effective solution for developers who do not require database integration, while still catering to those who do.

    Thanks again for the feedback!