Archived Content from Web3Auth Community
This topic was originally posted by orlandomv19 on 11/22/2023.
This content has been migrated from our previous community forum to preserve valuable discussions.
I need to get a http provider link or url so i can send to a payload, but the we3authprovider I created donât bring that information.
That was my code.
import { useEffect, useState } from âreactâ;
import { WALLET_ADAPTERS, CHAIN_NAMESPACES} from â@web3auth/baseâ;
import { Web3AuthNoModal } from â@web3auth/no-modalâ;
import { OpenloginAdapter } from â@web3auth/openlogin-adapterâ;
import { EthereumPrivateKeyProvider } from â@web3auth/ethereum-providerâ;
import { initializeApp } from âfirebase/appâ;
import RPC from ââŚ/components/RFC/web3RPCâ
import { GoogleAuthProvider, getAuth, signInWithPopup} from âfirebase/authâ;
const paal_logo = â/Paal_New_Logo.jpgâ;
const clientId = âBBtP5tjFc-gHhPHxvugc4p7ENBi1ZthPUwV5ETHDBCVnl6_V-JyIVLfBgc_R3-L10tXyyVDE6Dz4-QjnBv6oX54â
var payload;
var payloadProvider;
const firebaseConfig = {
apiKey: âAIzaSyD1Fh6ztMi7CrKa7A-p8A85-oZc0NcZpO0â,
authDomain: âcrispai.firebaseapp.comâ,
projectId: âcrispaiâ,
storageBucket: âcrispai.appspot.comâ,
messagingSenderId: â1003522928061â,
appId: â1:1003522928061:web:1c1c2850d1f0ad6557f6d4â,
measurementId: âG-ZF0FE5FB45â
};
const Web3AuthComponent = () => {
const [web3auth, setWeb3auth] = useState(null);
const [loggedIn,setLoggedIn] = useState(false);
const [provider, setProvider] = useState(null);
const [storedLoginRes, setStoredLoginRes] = useState(null);
useEffect(() => {
const init = async () => {
try {
const ChainConfig = { chainNamespace: CHAIN_NAMESPACES.EIP155, chainId: "0x1", rpcTarget: "https://rpc.ankr.com/eth", displayName: "Ethereum Mainnet", blockExplorer: "https://etherscan.io", ticker: "ETH", tickerName: "Ethereum", };const web3authInstance = new Web3AuthNoModal({
clientId,
web3AuthNetwork: âsapphire_devnetâ,
chainConfig: ChainConfig,
});//const analytics = getAnalytics(app);
const privateKeyProvider = new EthereumPrivateKeyProvider({ config: { chainConfig: ChainConfig } });
const openloginAdapter = new OpenloginAdapter({
adapterSettings: {
uxMode: âpopupâ,
whiteLabel: {
appName: âPaalâ,
appUrl: âhttps://web3auth.ioâ,
logoLight: paal_logo,
logoDark: paal_logo,
defaultLanguage: âenâ,
mode: âlightâ,
theme: {
primary: â#00D1B2â,
},
useLogoLoader: true,
},
loginConfig: {
jwt: {
verifier: âpaal_projectâ, // name of the verifier created on Web3Auth Dashboard
typeOfLogin: âjwtâ,
clientId,
},
},
},
privateKeyProvider,
});web3authInstance.configureAdapter(openloginAdapter);
setWeb3auth(web3authInstance);
console.log(web3authInstance);await web3authInstance.init();
setProvider(web3authInstance.provider);
if (web3authInstance.connected) {
setLoggedIn(true);
}
}catch (e){
console.error(e);
}
};
init();
login();
logout();
}, []);
const getLoginRes = async (loginRes) =>{
payload = {
uid: loginRes.user.uid
}
console.log(payload);
return payload
}
const getProvider = async (provider) =>{
payloadProvider = {
provider:provider
}
return provider;
}
const signInWithGoogle = async () => {
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
const googleProvider = new GoogleAuthProvider();
const res = await signInWithPopup(auth, googleProvider);
return res;
};
const logout = async () => {
if (!web3auth) {
return;
}
await web3auth.logout();
setLoggedIn(false);
setProvider(null);
}
const login = async () => {
try {
if (!web3auth) {
return;
}
const loginRes = await signInWithGoogle();
getLoginRes(loginRes);
console.log(âlogin detailsâ, loginRes);
const idToken = await loginRes.user.getIdToken(true);
console.log(âidTokenâ, idToken);
const web3authProvider = await web3auth.connectTo( WALLET_ADAPTERS.OPENLOGIN, { loginProvider: "jwt", extraLoginOptions: { id_token: idToken, verifierIdField: "sub", }, } );
getProvider(web3authProvider);
setProvider(web3authProvider);
} catch (error) {
console.error(âError logging inâ, error);
}
};
const getInfo = async () => {
if (!web3auth) {
return;
}
const user = await web3auth.getUserInfo();
console.log(âuserâ, user);
};
const getAccounts = async () => {
if (!web3auth?.provider) {
return;
}
const rpc = new RPC(provider);
const info = await rpc.getPrivateKey();
console.log('private_key',info);
const address = await rpc.getAccounts();
console.log("address",address);
};
console.log(âproviderâ,provider);
console.log(âpayloadâ,payload);
console.log(âpayProviderâ,payloadProvider);
return (
{/* Your JSX content here */}
);
};
export default Web3AuthComponent;
if someone can help me