Skip to content

Instantly share code, notes, and snippets.

View rishabhpoddar's full-sized avatar

Rishabh Poddar rishabhpoddar

View GitHub Profile
@rishabhpoddar
rishabhpoddar / jwt_verification.py
Created April 24, 2024 16:06
python JWT verification
import requests
from typing import List, Optional, Dict, Any
from time import time
import threading
from jwt import PyJWK, PyJWKSet, decode
from jwt.exceptions import DecodeError
class RWMutex:
def __init__(self):
self._lock = threading.Lock()
/* Copyright (c) 2022, VRAI Labs and/or its affiliates. All rights reserved.
*
* This software is licensed under the Apache License, Version 2.0 (the
* "License") as published by the Apache Software Foundation.
*
* You may not use this file except in compliance with the License. You may
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
@rishabhpoddar
rishabhpoddar / ad.py
Created February 1, 2023 08:24
Active dir with supertokens in python
from typing import Any, Dict, List, Union
import httpx
from supertokens_python.recipe.thirdparty.provider import Provider
from supertokens_python.recipe.thirdparty.types import UserInfo, UserInfoEmail, AccessTokenAPI, AuthorisationRedirectAPI
from jwt import decode # type: ignore
from jwt.algorithms import RSAAlgorithm
async def verify_id_token_from_jwks_endpoint_and_get_payload(
id_token: str, jwks_uri: str, audience: str
Building Remix app in production mode...
✘ [ERROR] Could not resolve "~/styles/components/Header.css"
app/components/Header.tsx:7:40:
7 │ ... { default as headerStyles } from "~/styles/components/Header.css";
╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can mark the path "~/styles/components/Header.css" as external to exclude it from the bundle, which will remove this error.
@rishabhpoddar
rishabhpoddar / index.ts
Created December 2, 2022 07:55
multi tenancy
const express = require("express");
const cors = require("cors");
const helmet = require("helmet");
require("dotenv").config();
let supertokens = require("supertokens-node");
let Session = require("supertokens-node/recipe/session");
let { verifySession } = require("supertokens-node/recipe/session/framework/express");
let { middleware, errorHandler } = require("supertokens-node/framework/express");
let ThirdPartyEmailPassword = require("supertokens-node/recipe/thirdpartyemailpassword");
let EmailVerification = require("supertokens-node/recipe/emailverification");
@rishabhpoddar
rishabhpoddar / index.ts
Created December 2, 2022 07:37
multi tenancy
const express = require("express");
const cors = require("cors");
const helmet = require("helmet");
require("dotenv").config();
let supertokens = require("supertokens-node");
let Session = require("supertokens-node/recipe/session");
let { verifySession } = require("supertokens-node/recipe/session/framework/express");
let { middleware, errorHandler } = require("supertokens-node/framework/express");
let ThirdPartyEmailPassword = require("supertokens-node/recipe/thirdpartyemailpassword");
let EmailVerification = require("supertokens-node/recipe/emailverification");
@rishabhpoddar
rishabhpoddar / index.ts
Created November 28, 2022 17:58
SuperTokens migration
EmailPassword.init({
override: {
apis: (oI) => {
return {
...oI,
signUpPOST: async function (input) {
let email = input.formFields.find(i => i.id === "email");
let oldUser = fetchUserFromOldeAuth(email);
if (oldUser !== undefined) {
return {
@rishabhpoddar
rishabhpoddar / index.tsx
Created October 13, 2022 18:31
ThirdParty header image
override: {
components: {
ThirdPartySignInAndUpHeader_Override: ({ DefaultComponent, ...props }) => {
return (
<div>
<img src="octocat.jpg" />
<DefaultComponent {...props} />
</div>
);
},
@rishabhpoddar
rishabhpoddar / index.ts
Created October 13, 2022 15:58
add email to session payload
Session.init({
override: {
functions: (oI) => {
return {
...oI,
createNewSession: async function (input) {
let userInfo = await ThirdParty.getUserById(input.userId);
input.accessTokenPayload = {
...input.accessTokenPayload,
email: userInfo!.email
@rishabhpoddar
rishabhpoddar / gist:de12d16d5522a98d689281a8126f598f
Created October 13, 2022 14:16
Third party component override
ThirdPartySignInAndUpProvidersForm_Override: ({ DefaultComponent, ...props }) => {
return (
<div>
<img src="octocat.jpg" />
<DefaultComponent {...props} />
</div>
);
},