๐Ÿš€ Hive Dev Diary: When Authentication Gets Sassy! ๐Ÿ˜œ๐Ÿ

(75)in#hiveโ€ข

๐Ÿ—๏ธ Dev Log Drop: Custom Hive Authentication Package! ๐Ÿ› ๏ธ

Hey party people of Hive! ๐Ÿ™‹โ€โ™‚๏ธ

Letโ€™s crank the dev updates up to eleven, sprinkle a dash of memes, and bring some buzz to the blockchain! ๐Ÿ


๐Ÿ˜… Why Not Stick to Just Aioha?

I've used @aioha package like itโ€™s my morning chai ๐Ÿตโ€”everywhere: distriator, checkinwithxyz, and the 3speak-refactor mobile app! But, plot twist, we decided to ride one scooter further and build our own custom package (on top of it). Why? Well, because facing setbacks is just part of building on the bleeding edgeโ€”and, honestly, who doesnโ€™t like doing things their own way sometimes? ๐Ÿ˜

but why

  • Custom User Interface (because users want their apps looking fancy ๐Ÿ’„)
  • Custom Data Storage (we want our tokens, our types, and our own flavor ๐ŸŒถ๏ธ)
  • Async logic for logins (because we absolutely must call our APIs! ๐Ÿค–)
  • Fan-demand: support login with private key for multiple users (not just me anymore!)

๐Ÿค– Introducing... HiveAuthentication (Name Sucks, Help Wanted! ๐Ÿ˜‚)

Time to take matters into our own handsโ€”UI hands, that is!

Weโ€™re making an open-source package (WIP name: hive-authentication, cheers for ideas!). Drop your brilliant/crazy/funny name suggestions in the commentsโ€”winner gets karma, eternal gratitude, and a virtual high five! โœ‹

not the first time

  • Is this our third attempt? Yes.
  • Did we crash and burn before? Also yes.
  • Am I more hopeful than ever? ABSOL

๐Ÿ‘€ Sneak Peak - UI Unveiled!

Sneak peak

Check the glow-up! When users hit "login", they get this snazzy new UI. Options:

  • Enter username, choose login flavor ๐Ÿ˜‹
  • Working options: keychain, hiveauth, posting key

More to come, but this is everything weโ€™ve polished so far. โœจ


โš›๏ธ ReactJS Integration = Breezy! ๐ŸŒฌ๏ธ

reactjs

Installation (Spoiler: Itโ€™s Easy!)

npm install hive-authentication

Install the package. It will take care of adding aioha internally.

Let's not break UI

import 'hive-authentication/build.css';

Wherever you plan to use hive-authentication package's button, make sure you import the build.css file so that you don't break UX we have supplied in the package.

Code Snippet

code snippet

import { AuthButton, useAuthStore } from 'hive-authentication';

function App() {
  const { currentUser, loggedInUsers } = useAuthStore();

  // Subscribe to store changes using Zustand
  useEffect(() => {
    const unsubscribe = useAuthStore.subscribe((state) => {
      console.log('Store state changed:', state);
    });

    return unsubscribe;
  }, []);

  // Your authentication callback - works for both login AND adding accounts
  const handleAuthenticate = async (hiveResult) => {
    // Make your API call here
    const response = await fetch('/api/login', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        challenge: hiveResult.challenge,
        username: hiveResult.username,
        pubkey: hiveResult.publicKey,
        proof: hiveResult.proof,
      }),
    });

    if (!response.ok) {
      throw new Error('Server authentication failed');
    }

    const data = await response.json();
    
    // Return your server response as JSON string
    return JSON.stringify(data);
  };

  return (
    <div>
      <h1>My App</h1>
      <AuthButton onAuthenticate={handleAuthenticate} />
      
      {currentUser && (
        <p>Welcome, {currentUser.username}!</p>
      )}
    </div>
  );
}

That's it

that is it

Yep. That is it. Your reactjs app is ready with login/authentication. Easy peasy. Give it a try & share your feedback if you are a dev.


๐ŸŽ‰ The Hive Hype Never Stops ๐Ÿš‚

  • ๐Ÿ™Œ Keep building open source for hive
  • ๐Ÿ’ Big love to Hive fam for feedback & support
  • ๐Ÿ“ˆ Hive blockchain = ๐Ÿš€๐ŸŒŒ all the way to the moon, Mars & beyond!

Hive magic

๐Ÿ”ฅ Until the next dev log โ€” Keep building, keep Hiving! ๐Ÿ๐Ÿ’œ


๐Ÿ“ Final Note


๐Ÿš€ My Contributions to โ™ฆ๏ธ Hive Ecosystem

ContributionToHiveEcosystem
Hive Witness NodeHive API Node (in progress)3Speak Video Encoder Node Operator (highest number of nodes)3Speak Mobile App Developer
3Speak Podcast App Developer3Speak Shorts App Developer3Speak Support & Maintenance TeamDistriator Developer
CheckinWithXYZHive InboxHiFindHive Donate App
Contributed to HiveAuth Mobile AppEcency โ†” 3Speak IntegrationEcency โ†” InLeo IntegrationEcency โ†” Actifit Integration
Hive Stats AppVote for Witness AppHiveFlutterKitNew 3Speak App

๐Ÿ™Œ Support Back

โค๏ธ Appreciate my work? Consider supporting @threespeak & @sagarkothari88! โค๏ธ


in#hiveby
(75)
$5.75
||
Sort:
  • hivebuzz profile picture(74)

    Congratulations @sagarkothari88! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

    You distributed more than 120000 upvotes.
    Your next target is to reach 125000 upvotes.

    You can view your badges on your board and compare yourself to others in the Ranking If you no longer want to receive notifications, reply to this comment with the word STOP

    Check out our last posts:

    $0.00
    • plantpoweronhive profile picture(75)

      FOOTER.png You've been curated by @plantpoweronhive! Delegations welcome!
      Find our community here | Curation Trail
      $0.00
      • sagarkothari88 profile picture(75)

        Thank you so much @plantpoweronhive for the curation. I'll keep up my best.

        $0.00