@bananacool467/authtics 1.0.54 → 1.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +42 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -47,8 +47,28 @@ const getAccount = (accessToken, clientId, clientSecret, userIp) => __awaiter(vo
47
47
  exports.getAccount = getAccount;
48
48
  exports.authtics = {
49
49
  useAccount: () => {
50
+ const searchParams = new URLSearchParams(window.location.search);
50
51
  const [account, setAccount] = react.useState({});
52
+ const [authorized, setAuthorized] = react.useState(false);
51
53
  react.useEffect(() => {
54
+ const handleCode = () => __awaiter(void 0, void 0, void 0, function* () {
55
+ if (searchParams.get('code')) {
56
+ const code = yield fetch('/api/authtics-integration/code-exchanger', {
57
+ method: 'POST',
58
+ headers: {
59
+ "Content-Type": "application/json"
60
+ },
61
+ body: JSON.stringify({ code: searchParams.get('code') })
62
+ });
63
+ if (code.status != 200) {
64
+ }
65
+ else {
66
+ const json = yield code.json();
67
+ const newLink = window.location.href.replace('?code=' + searchParams.get('code'), json.accessToken).replace('&code=' + searchParams.get('code'), '&access_token=' + json.accessToken);
68
+ window.location.href = newLink;
69
+ }
70
+ }
71
+ });
52
72
  const getAccount = () => __awaiter(void 0, void 0, void 0, function* () {
53
73
  const a = yield fetch('/api/authtics-integration/get-account', {
54
74
  method: 'POST',
@@ -59,12 +79,15 @@ exports.authtics = {
59
79
  });
60
80
  if (a.status != 200) {
61
81
  setAccount({});
82
+ setAuthorized(false);
62
83
  }
63
84
  else {
64
85
  setAccount(yield a.json());
86
+ setAuthorized(true);
65
87
  }
66
88
  });
67
89
  getAccount();
90
+ handleCode();
68
91
  }, []);
69
92
  const carriedInfo = {
70
93
  action: null,
@@ -87,7 +110,7 @@ exports.authtics = {
87
110
  cookieParser(),
88
111
  (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
89
112
  var _a;
90
- if (req.path != '/api/authtics-integration/get-account' && req.path != '/api/authtics-integration/login' && req.path != '/api/authtics-integration/logout') {
113
+ if (req.path != '/api/authtics-integration/get-account' && req.path != '/api/authtics-integration/login' && req.path != '/api/authtics-integration/logout' && req.path != '/api/authtics-integration/code-exchanger') {
91
114
  const userIp = req.ip;
92
115
  const token = req.query.accessToken;
93
116
  const cookie = (_a = req.cookies) === null || _a === void 0 ? void 0 : _a.AUTHTICS_ACCOUNT_ACCESS_TOKEN;
@@ -143,6 +166,24 @@ exports.authtics = {
143
166
  res.status(200).json({ redirect: redirect });
144
167
  next();
145
168
  }
169
+ else if (req.path == '/api/authtics-integration/code-exchanger') {
170
+ const codeExchanged = yield fetch('https://eb29e77b-9bd2-4e3b-9469-81d3af2a8fbe-00-1ag45w1mgbsv1.picard.replit.dev/api/authtics/code-exchange', {
171
+ method: 'POST',
172
+ headers: {
173
+ "Content-Type": "application/json"
174
+ },
175
+ body: JSON.stringify({
176
+ code: req.body.code,
177
+ clientId: clientId
178
+ })
179
+ });
180
+ if (codeExchanged.status != 200) {
181
+ res.status(codeExchanged.status).json(yield codeExchanged.json());
182
+ }
183
+ else {
184
+ res.status(200).json({ accessToken: (yield codeExchanged.json()).accessToken });
185
+ }
186
+ }
146
187
  })
147
188
  ];
148
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bananacool467/authtics",
3
- "version": "1.0.54",
3
+ "version": "1.0.56",
4
4
  "description": "Use Authtics (An Auth service) to add accounts to your site like Auth0! (This is currently underdevelopment. Issues are expected.)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",