@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 1.05 kB
JavaScript
var e=require("react"),r=require("./frame-8JZCzmCf.js"),t=require("./paths-B00ZrFQm.js"),i=require("./internal-context-DNWjSiYq.js");require("ofetch");exports.useLoginToMiniApp=()=>{let{client:a,setAuthenticated:n,setUser:s}=i.usePrivyInternal();return{initLoginToMiniApp:e.useCallback((async()=>{let e=new r.FarcasterFramesFlow;if(!a)throw new t.PrivyClientError("Must initialize Privy client first.");return a.startAuthFlow(e),await e.init()}),[a]),loginToMiniApp:e.useCallback((async({message:e,signature:i})=>{if(!a)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(a.authFlow instanceof r.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster Mini App flow first.");let l=(e=>{let r=e.match(/farcaster:\/\/fid\/(\d+)/);return r&&r[1]?parseInt(r[1],10):null})(e);if(!l)throw new t.PrivyClientError("Invalid message format; could not parse Farcaster ID.");a.authFlow.setAuthData({message:e,signature:i,fid:l});let{user:u}=await a.authenticate();return u&&(s(u),n(!0)),u}),[a,s,n])}};
;