Skip to content

Commit e467fb6

Browse files
author
Musab Hussain
committed
session management
1 parent 3bdf858 commit e467fb6

File tree

15 files changed

+724
-168
lines changed

15 files changed

+724
-168
lines changed

example/App.tsx

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { StatusBar } from "expo-status-bar";
2-
import { useState } from "react";
2+
import { useEffect, useRef, useState } from "react";
33
import { StyleSheet, Text, View, Button } from "react-native";
44
import Web3Auth, { LOGIN_PROVIDER, OPENLOGIN_NETWORK, State } from "@web3auth/react-native-sdk";
55
import Constants, { AppOwnership } from "expo-constants";
66
import * as Linking from "expo-linking";
77
import * as WebBrowser from "expo-web-browser";
8+
import * as SecureStore from 'expo-secure-store';
89
import { Buffer } from "buffer";
910

1011
global.Buffer = global.Buffer || Buffer;
@@ -20,13 +21,23 @@ export default function App() {
2021
const [key, setKey] = useState("");
2122
const [errorMsg, setErrorMsg] = useState("");
2223
const [userInfo, setUserInfo] = useState<State>(null);
24+
25+
var web3auth = useRef<Web3Auth>();
26+
27+
useEffect(() => {
28+
web3auth.current = new Web3Auth(WebBrowser, SecureStore, {
29+
clientId: "BDj1toq1N1xYgDIJ00ADR-QPJ71ESzJcB3ijVHP1TsIX7nsx_lu6uLoJQMPze1vpGDt--Ew95RGxz-RgOh1tcxM",
30+
network: OPENLOGIN_NETWORK.TESTNET,
31+
});
32+
web3auth.current.sessionResponse.on("login", function(state: State) {
33+
setKey(state.privKey || "no key");
34+
setUserInfo(state);
35+
});
36+
}, []);
37+
2338
const login = async () => {
2439
try {
25-
const web3auth = new Web3Auth(WebBrowser, {
26-
clientId: "BA0mVyeHATikwuXVhXWCNjAxHthlw0w84mUhLuxlC4KZKjvmBsbdbmEWTizJ26YzrbKSWbOZbtGYdVDm0ESuYSg",
27-
network: OPENLOGIN_NETWORK.TESTNET,
28-
});
29-
const state = await web3auth.login({
40+
const state = await web3auth.current.login({
3041
loginProvider: LOGIN_PROVIDER.GOOGLE,
3142
redirectUrl: resolvedRedirectUrl,
3243
});

example/package-lock.json

Lines changed: 50 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"react": "^17.0.1",
1919
"react-dom": "^17.0.1",
2020
"react-native": "^0.68.2",
21-
"react-native-web": "0.17.7"
21+
"react-native-web": "0.17.7",
22+
"expo-secure-store": "~11.2.0"
2223
},
2324
"devDependencies": {
2425
"@babel/core": "^7.18.9",

example_general/App.tsx

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
* @format
99
*/
1010

11-
import React, {useState} from 'react';
11+
import React, {useEffect, useRef, useState} from 'react';
1212
import * as WebBrowser from '@toruslabs/react-native-web-browser';
13+
import EncryptedStorage from 'react-native-encrypted-storage';
1314
import Web3Auth, {
1415
LOGIN_PROVIDER,
1516
OPENLOGIN_NETWORK,
@@ -28,24 +29,34 @@ const App = () => {
2829
const [key, setKey] = useState('');
2930
const [errorMsg, setErrorMsg] = useState('');
3031
const [userInfo, setUserInfo] = useState<State | null>(null);
32+
33+
var web3auth = useRef<Web3Auth>();
34+
35+
useEffect(() => {
36+
web3auth.current = new Web3Auth(WebBrowser, EncryptedStorage, {
37+
clientId: "BDj1toq1N1xYgDIJ00ADR-QPJ71ESzJcB3ijVHP1TsIX7nsx_lu6uLoJQMPze1vpGDt--Ew95RGxz-RgOh1tcxM",
38+
network: OPENLOGIN_NETWORK.TESTNET,
39+
});
40+
web3auth.current.sessionResponse.on("login", function(state: State) {
41+
setKey(state.privKey || "no key");
42+
setUserInfo(state);
43+
});
44+
}, []);
45+
3146
const login = async () => {
3247
try {
33-
const web3auth = new Web3Auth(WebBrowser, {
34-
clientId:
35-
'BA0mVyeHATikwuXVhXWCNjAxHthlw0w84mUhLuxlC4KZKjvmBsbdbmEWTizJ26YzrbKSWbOZbtGYdVDm0ESuYSg',
36-
network: OPENLOGIN_NETWORK.TESTNET,
37-
});
38-
const state = await web3auth.login({
48+
const state = await web3auth.current.login({
3949
loginProvider: LOGIN_PROVIDER.GOOGLE,
4050
redirectUrl: resolvedRedirectUrl,
4151
});
42-
setKey(state.privKey || 'no key');
52+
setKey(state.privKey || "no key");
4353
setUserInfo(state);
4454
} catch (e) {
4555
console.error(e);
4656
setErrorMsg(String(e));
4757
}
4858
};
59+
4960
return (
5061
<View style={styles.container}>
5162
{key !== '' ? <Text>Key: {key}</Text> : null}

example_general/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
"lint": "eslint . --ext .js,.jsx,.ts,.tsx"
1111
},
1212
"dependencies": {
13+
"@toruslabs/react-native-web-browser": "^1.0.1",
14+
"@web3auth/react-native-sdk": "file:../",
1315
"react": "18.1.0",
1416
"react-native": "0.70.1",
15-
"@toruslabs/react-native-web-browser": "^1.0.1",
16-
"@web3auth/react-native-sdk": "file:../"
17+
"react-native-encrypted-storage": "^4.0.3"
1718
},
1819
"devDependencies": {
1920
"@babel/core": "^7.12.9",

0 commit comments

Comments
 (0)