@authdog/remix-node 0.0.3 → 0.0.5

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.
package/README.md ADDED
@@ -0,0 +1,8 @@
1
+ ## remix-node
2
+
3
+ Authdog remix-node library
4
+
5
+ ## Use session
6
+
7
+ ## Loader
8
+
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import * as _remix_run_node from '@remix-run/node';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import React from 'react';
4
+
5
+ declare const AuthdogProvider: ({ children }: {
6
+ children: React.ReactNode;
7
+ }) => react_jsx_runtime.JSX.Element;
2
8
 
3
- declare const validateAndParsePublicKey: (publicKey: string) => any;
4
- declare const fetchUserData: (identityHost: string, environmentId: string, token: string) => Promise<any>;
5
9
  declare const createAuthResponse: (authenticatedUser: any, token: string, environmentId: string, request: Request) => _remix_run_node.TypedResponse<{
6
10
  user: any;
7
11
  isAuthenticated: boolean;
@@ -20,4 +24,4 @@ declare const remixAuthLoader: ({ request, context, }: {
20
24
  loading: boolean;
21
25
  }>>;
22
26
 
23
- export { authenticateWithCookies, createAuthResponse, fetchUserData, remixAuthLoader, validateAndParsePublicKey };
27
+ export { AuthdogProvider, authenticateWithCookies, createAuthResponse, remixAuthLoader };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{json as i}from"@remix-run/node";import{parseCookies as h}from"@authdog/node-commons";var f=r=>{if(!r)throw new Error("Public key is not defined");if(!r.startsWith("pk_"))throw new Error("Invalid public key");return JSON.parse(Buffer.from(r.replace("pk_",""),"base64").toString("utf-8"))},u=async(r,s,t)=>{let e=await fetch(`${r}/oidc/${s}/userinfo`,{headers:{authorization:`Bearer ${t}`}});if(!e.ok)throw new Error("Failed to fetch user info");return e.json()},m=(r,s,t,e)=>{let a=i({user:r.user,isAuthenticated:!0}),n=new Headers(a.headers),o=JSON.stringify(r==null?void 0:r.user),c=s;n.append("Set-Cookie",`user_session_${t}=${encodeURIComponent(o)}; Path=/; HttpOnly; Secure; SameSite=Strict`),n.append("Set-Cookie",`user_session_hash_${t}=${encodeURIComponent(c)}; Path=/; HttpOnly; Secure; SameSite=Strict`);let d=new URL(e.url);return d.searchParams.delete("token"),n.append("Location",d.toString()),n.append("Cache-Control","no-store, no-cache, must-revalidate, proxy-revalidate"),n.append("Pragma","no-cache"),n.append("Expires","0"),n.append("Vary","Cookie"),n.append("Content-Type","application/json"),n.append("Access-Control-Allow-Origin","*"),n.append("Access-Control-Allow-Credentials","true"),i({user:r.user,isAuthenticated:!0},{headers:n})},p=async(r,s)=>{try{let t=r.headers.get("Cookie"),e=h(t);if(e.length===0)return i({user:null,isAuthenticated:!1});let a=e.find(n=>n.name===`user_session_hash_${s==null?void 0:s.environmentId}`);if(a){let n=a.value,o=await u(s==null?void 0:s.identityHost,s==null?void 0:s.environmentId,n);return i({user:o.user,isAuthenticated:!0})}}catch(t){console.error("Error authenticating with cookies:",t)}return null},k=async({request:r,context:s})=>{var n;let t=process.env.PK_AUTHDOG,e=f(t),a=new URL(r.url).searchParams.get("token");if(a){let o=await u(e==null?void 0:e.identityHost,e==null?void 0:e.environmentId,a);if(o!=null&&o.meta&&((n=o==null?void 0:o.meta)==null?void 0:n.code)===200){let c=JSON.stringify(o==null?void 0:o.user);return s[`user_session_${e==null?void 0:e.environmentId}`]=c,s[`user_session_hash_${e==null?void 0:e.environmentId}`]=a,m(o,a,e==null?void 0:e.environmentId,r)}}else{let o=await p(r,e);if(o)return o}return i({loading:!0})};export{p as authenticateWithCookies,m as createAuthResponse,u as fetchUserData,k as remixAuthLoader,f as validateAndParsePublicKey};
1
+ import{json as i}from"@remix-run/node";import{parseCookies as f,validateAndParsePublicKey as g,fetchUserData as h}from"@authdog/node-commons";import{useEffect as u}from"react";import{Fragment as p,jsx as S}from"react/jsx-runtime";var m=({children:s})=>(u(()=>{let o=new URL(window.location.href);o.searchParams.get("token")&&(o.searchParams.delete("token"),window.history.replaceState({},document.title,o.toString()))},[]),S(p,{children:s}));var k=(s,o,r,e)=>{let a=i({user:s.user,isAuthenticated:!0}),n=new Headers(a.headers),t=JSON.stringify(s==null?void 0:s.user),c=o;n.append("Set-Cookie",`user_session_${r}=${encodeURIComponent(t)}; Path=/; HttpOnly; Secure; SameSite=Strict`),n.append("Set-Cookie",`user_session_hash_${r}=${encodeURIComponent(c)}; Path=/; HttpOnly; Secure; SameSite=Strict`);let d=new URL(e.url);return d.searchParams.delete("token"),n.append("Location",d.toString()),n.append("Cache-Control","no-store, no-cache, must-revalidate, proxy-revalidate"),n.append("Pragma","no-cache"),n.append("Expires","0"),n.append("Vary","Cookie"),n.append("Content-Type","application/json"),n.append("Access-Control-Allow-Origin","*"),n.append("Access-Control-Allow-Credentials","true"),i({user:s.user,isAuthenticated:!0},{headers:n})},l=async(s,o)=>{try{let r=s.headers.get("Cookie"),e=f(r);if(e.length===0)return i({user:null,isAuthenticated:!1});let a=e.find(n=>n.name===`user_session_hash_${o==null?void 0:o.environmentId}`);if(a){let n=a.value,t=await h(o==null?void 0:o.identityHost,o==null?void 0:o.environmentId,n);return i({user:t.user,isAuthenticated:!0})}}catch(r){console.error("Error authenticating with cookies:",r)}return null},P=async({request:s,context:o})=>{var n;let r=process.env.PK_AUTHDOG,e=g(r),a=new URL(s.url).searchParams.get("token");if(a){let t=await h(e==null?void 0:e.identityHost,e==null?void 0:e.environmentId,a);if(t!=null&&t.meta&&((n=t==null?void 0:t.meta)==null?void 0:n.code)===200){let c=JSON.stringify(t==null?void 0:t.user);return o[`user_session_${e==null?void 0:e.environmentId}`]=c,o[`user_session_hash_${e==null?void 0:e.environmentId}`]=a,k(t,a,e==null?void 0:e.environmentId,s)}}else{let t=await l(s,e);if(t)return t}return i({loading:!0})};export{m as AuthdogProvider,l as authenticateWithCookies,k as createAuthResponse,P as remixAuthLoader};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { json } from \"@remix-run/node\";\n\nimport { parseCookies } from \"@authdog/node-commons\";\n\n// Helper function to validate and parse the public key\nexport const validateAndParsePublicKey = (publicKey: string) => {\n if (!publicKey) {\n throw new Error(\"Public key is not defined\");\n }\n\n if (!publicKey.startsWith(\"pk_\")) {\n throw new Error(\"Invalid public key\");\n }\n\n // Decode Base64-encoded publicKey\n return JSON.parse(\n Buffer.from(publicKey.replace(\"pk_\", \"\"), \"base64\").toString(\"utf-8\"),\n );\n};\n\n// Function to fetch user data from the identity host\nexport const fetchUserData = async (\n identityHost: string,\n environmentId: string,\n token: string,\n) => {\n const userData = await fetch(\n `${identityHost}/oidc/${environmentId}/userinfo`,\n {\n headers: {\n authorization: `Bearer ${token}`,\n },\n },\n );\n\n if (!userData.ok) {\n throw new Error(\"Failed to fetch user info\");\n }\n\n return userData.json();\n};\n\n// Function to create authentication response with cookies\nexport const createAuthResponse = (\n authenticatedUser: any,\n token: string,\n environmentId: string,\n request: Request,\n) => {\n // Create response with cookies\n const response = json({\n user: authenticatedUser.user,\n isAuthenticated: true,\n });\n\n // Set cookies in the response headers\n const headers = new Headers(response.headers);\n\n // Serialize the user object separately\n const userSessionValue = JSON.stringify(authenticatedUser?.user);\n const userSessionHashValue = token;\n\n headers.append(\n \"Set-Cookie\",\n `user_session_${environmentId}=${encodeURIComponent(userSessionValue)}; Path=/; HttpOnly; Secure; SameSite=Strict`,\n );\n headers.append(\n \"Set-Cookie\",\n `user_session_hash_${environmentId}=${encodeURIComponent(userSessionHashValue)}; Path=/; HttpOnly; Secure; SameSite=Strict`,\n );\n\n // Remove token from URL\n const newUrl = new URL(request.url);\n newUrl.searchParams.delete(\"token\");\n headers.append(\"Location\", newUrl.toString());\n\n // Add cache control headers\n headers.append(\n \"Cache-Control\",\n \"no-store, no-cache, must-revalidate, proxy-revalidate\",\n );\n headers.append(\"Pragma\", \"no-cache\");\n headers.append(\"Expires\", \"0\");\n headers.append(\"Vary\", \"Cookie\");\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Access-Control-Allow-Origin\", \"*\");\n headers.append(\"Access-Control-Allow-Credentials\", \"true\");\n\n return json(\n {\n user: authenticatedUser.user,\n isAuthenticated: true,\n },\n {\n headers,\n },\n );\n};\n\n// Function to authenticate with cookies\nexport const authenticateWithCookies = async (\n request: Request,\n publicKeyObj: any,\n) => {\n try {\n // Get cookies from request\n const cookieHeader = request.headers.get(\"Cookie\");\n const cookies = parseCookies(cookieHeader);\n\n if (cookies.length === 0) {\n return json({\n user: null,\n isAuthenticated: false,\n });\n }\n\n // Find our specific cookies\n const userSessionHashCookie = cookies.find(\n (c) => c.name === `user_session_hash_${publicKeyObj?.environmentId}`,\n );\n\n if (userSessionHashCookie) {\n const userSessionHashValue = userSessionHashCookie.value;\n const authenticatedUser = await fetchUserData(\n publicKeyObj?.identityHost,\n publicKeyObj?.environmentId,\n userSessionHashValue,\n );\n\n return json({\n user: authenticatedUser.user,\n isAuthenticated: true,\n });\n }\n } catch (error) {\n console.error(\"Error authenticating with cookies:\", error);\n }\n\n return null;\n};\n\n// Main loader function\nexport const remixAuthLoader = async ({\n request,\n context,\n}: {\n request: Request;\n context: Record<string, any>;\n}) => {\n const publicKey = process.env.PK_AUTHDOG as string;\n const publicKeyObj = validateAndParsePublicKey(publicKey);\n\n // First check if we have a token in the URL\n const tokenFromUri = new URL(request.url).searchParams.get(\"token\");\n\n if (tokenFromUri) {\n // Handle token from URL\n const authenticatedUser = await fetchUserData(\n publicKeyObj?.identityHost,\n publicKeyObj?.environmentId,\n tokenFromUri,\n );\n\n if (authenticatedUser?.meta && authenticatedUser?.meta?.code === 200) {\n // Store in context for later use\n const userSessionValue = JSON.stringify(authenticatedUser?.user);\n context[`user_session_${publicKeyObj?.environmentId}`] = userSessionValue;\n context[`user_session_hash_${publicKeyObj?.environmentId}`] =\n tokenFromUri;\n\n return createAuthResponse(\n authenticatedUser,\n tokenFromUri,\n publicKeyObj?.environmentId,\n request,\n );\n }\n } else {\n // Try to authenticate using cookies\n const cookieAuthResult = await authenticateWithCookies(\n request,\n publicKeyObj,\n );\n if (cookieAuthResult) {\n return cookieAuthResult;\n }\n }\n\n return json({\n loading: true,\n });\n};\n"],"mappings":"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","names":["json","parseCookies","validateAndParsePublicKey","publicKey","fetchUserData","identityHost","environmentId","token","userData","createAuthResponse","authenticatedUser","request","response","headers","userSessionValue","userSessionHashValue","newUrl","authenticateWithCookies","publicKeyObj","cookieHeader","cookies","userSessionHashCookie","c","error","remixAuthLoader","context","_a","tokenFromUri","cookieAuthResult"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/provider.tsx"],"sourcesContent":["import { json } from \"@remix-run/node\";\n\nimport { parseCookies, validateAndParsePublicKey, fetchUserData } from \"@authdog/node-commons\";\n\n// Function to create authentication response with cookies\nexport const createAuthResponse = (\n authenticatedUser: any,\n token: string,\n environmentId: string,\n request: Request,\n) => {\n // Create response with cookies\n const response = json({\n user: authenticatedUser.user,\n isAuthenticated: true,\n });\n\n // Set cookies in the response headers\n const headers = new Headers(response.headers);\n\n // Serialize the user object separately\n const userSessionValue = JSON.stringify(authenticatedUser?.user);\n const userSessionHashValue = token;\n\n headers.append(\n \"Set-Cookie\",\n `user_session_${environmentId}=${encodeURIComponent(userSessionValue)}; Path=/; HttpOnly; Secure; SameSite=Strict`,\n );\n headers.append(\n \"Set-Cookie\",\n `user_session_hash_${environmentId}=${encodeURIComponent(userSessionHashValue)}; Path=/; HttpOnly; Secure; SameSite=Strict`,\n );\n\n // Remove token from URL\n const newUrl = new URL(request.url);\n newUrl.searchParams.delete(\"token\");\n headers.append(\"Location\", newUrl.toString());\n\n // Add cache control headers\n headers.append(\n \"Cache-Control\",\n \"no-store, no-cache, must-revalidate, proxy-revalidate\",\n );\n headers.append(\"Pragma\", \"no-cache\");\n headers.append(\"Expires\", \"0\");\n headers.append(\"Vary\", \"Cookie\");\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Access-Control-Allow-Origin\", \"*\");\n headers.append(\"Access-Control-Allow-Credentials\", \"true\");\n\n return json(\n {\n user: authenticatedUser.user,\n isAuthenticated: true,\n },\n {\n headers,\n },\n );\n};\n\n// Function to authenticate with cookies\nexport const authenticateWithCookies = async (\n request: Request,\n publicKeyObj: any,\n) => {\n try {\n // Get cookies from request\n const cookieHeader = request.headers.get(\"Cookie\");\n const cookies = parseCookies(cookieHeader);\n\n if (cookies.length === 0) {\n return json({\n user: null,\n isAuthenticated: false,\n });\n }\n\n // Find our specific cookies\n const userSessionHashCookie = cookies.find(\n (c) => c.name === `user_session_hash_${publicKeyObj?.environmentId}`,\n );\n\n if (userSessionHashCookie) {\n const userSessionHashValue = userSessionHashCookie.value;\n const authenticatedUser = await fetchUserData(\n publicKeyObj?.identityHost,\n publicKeyObj?.environmentId,\n userSessionHashValue,\n );\n\n return json({\n user: authenticatedUser.user,\n isAuthenticated: true,\n });\n }\n } catch (error) {\n console.error(\"Error authenticating with cookies:\", error);\n }\n\n return null;\n};\n\n// Main loader function\nexport const remixAuthLoader = async ({\n request,\n context,\n}: {\n request: Request;\n context: Record<string, any>;\n}) => {\n const publicKey = process.env.PK_AUTHDOG as string;\n const publicKeyObj = validateAndParsePublicKey(publicKey);\n\n // First check if we have a token in the URL\n const tokenFromUri = new URL(request.url).searchParams.get(\"token\");\n\n if (tokenFromUri) {\n // Handle token from URL\n const authenticatedUser = await fetchUserData(\n publicKeyObj?.identityHost,\n publicKeyObj?.environmentId,\n tokenFromUri,\n );\n\n if (authenticatedUser?.meta && authenticatedUser?.meta?.code === 200) {\n // Store in context for later use\n const userSessionValue = JSON.stringify(authenticatedUser?.user);\n context[`user_session_${publicKeyObj?.environmentId}`] = userSessionValue;\n context[`user_session_hash_${publicKeyObj?.environmentId}`] =\n tokenFromUri;\n\n return createAuthResponse(\n authenticatedUser,\n tokenFromUri,\n publicKeyObj?.environmentId,\n request,\n );\n }\n } else {\n // Try to authenticate using cookies\n const cookieAuthResult = await authenticateWithCookies(\n request,\n publicKeyObj,\n );\n if (cookieAuthResult) {\n return cookieAuthResult;\n }\n }\n\n return json({\n loading: true,\n });\n};\n\nexport {AuthdogProvider} from \"./provider.tsx\"","import React, { useEffect } from \"react\";\n\nexport const AuthdogProvider = ({ children }: { children: React.ReactNode }) => {\n useEffect(() => {\n const url = new URL(window.location.href);\n const token = url.searchParams.get(\"token\");\n if (token) {\n url.searchParams.delete(\"token\");\n window.history.replaceState({}, document.title, url.toString());\n }\n }, []);\n \n return <>{children}</>;\n}"],"mappings":"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","names":["json","parseCookies","validateAndParsePublicKey","fetchUserData","useEffect","Fragment","jsx","AuthdogProvider","children","url","createAuthResponse","authenticatedUser","token","environmentId","request","response","json","headers","userSessionValue","userSessionHashValue","newUrl","authenticateWithCookies","publicKeyObj","cookieHeader","cookies","parseCookies","userSessionHashCookie","c","fetchUserData","error","remixAuthLoader","context","_a","publicKey","validateAndParsePublicKey","tokenFromUri","cookieAuthResult"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@authdog/remix-node",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Authdog Remix SDK",
5
5
  "type": "module",
6
6
  "source": "src/index.ts",
@@ -21,7 +21,8 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@remix-run/node": "^2.15.2",
24
- "@authdog/node-commons": "0.0.17"
24
+ "react": "^19.1.0",
25
+ "@authdog/node-commons": "0.0.19"
25
26
  },
26
27
  "scripts": {
27
28
  "format": "prettier --config .prettierrc.json --write \"**/*.{ts,md}\"",