mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-26 22:29:24 +00:00
add linkedin
This commit is contained in:
parent
2de89fb173
commit
03a311e78d
@ -92,7 +92,7 @@ export default function AuthDebug() {
|
|||||||
alert(`Cleared ${keys.length} auth-related localStorage keys`)
|
alert(`Cleared ${keys.length} auth-related localStorage keys`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const testSignIn = async (provider: 'github' | 'google' | 'facebook' = 'github') => {
|
const testSignIn = async (provider: 'github' | 'google' | 'facebook' | 'linkedin_oidc' = 'github') => {
|
||||||
try {
|
try {
|
||||||
// Supabase redirects back to your app after OAuth
|
// Supabase redirects back to your app after OAuth
|
||||||
const redirectTo = `${window.location.origin}/auth/callback`
|
const redirectTo = `${window.location.origin}/auth/callback`
|
||||||
@ -103,6 +103,8 @@ export default function AuthDebug() {
|
|||||||
redirectTo,
|
redirectTo,
|
||||||
queryParams: provider === 'facebook'
|
queryParams: provider === 'facebook'
|
||||||
? { scope: 'email' }
|
? { scope: 'email' }
|
||||||
|
: provider === 'linkedin_oidc'
|
||||||
|
? { scope: 'openid profile email' }
|
||||||
: {
|
: {
|
||||||
access_type: 'offline',
|
access_type: 'offline',
|
||||||
prompt: 'consent',
|
prompt: 'consent',
|
||||||
@ -350,6 +352,13 @@ export default function AuthDebug() {
|
|||||||
Test Facebook Sign In
|
Test Facebook Sign In
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
onClick={() => testSignIn('linkedin_oidc')}
|
||||||
|
className="px-4 py-2 bg-cyan-600 text-white rounded hover:bg-cyan-700"
|
||||||
|
>
|
||||||
|
Test LinkedIn Sign In
|
||||||
|
</button>
|
||||||
|
|
||||||
{session && (
|
{session && (
|
||||||
<button
|
<button
|
||||||
onClick={signOut}
|
onClick={signOut}
|
||||||
|
@ -151,7 +151,7 @@ export default function Login() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const signInWithOAuth = async (provider: 'github' | 'google' | 'facebook', nextPath = '/') => {
|
const signInWithOAuth = async (provider: 'github' | 'google' | 'facebook' | 'linkedin_oidc', nextPath = '/') => {
|
||||||
try {
|
try {
|
||||||
setIsSigningIn(true)
|
setIsSigningIn(true)
|
||||||
setError(null)
|
setError(null)
|
||||||
@ -186,6 +186,10 @@ export default function Login() {
|
|||||||
oauthOptions.queryParams = {
|
oauthOptions.queryParams = {
|
||||||
scope: 'email',
|
scope: 'email',
|
||||||
}
|
}
|
||||||
|
} else if (provider === 'linkedin_oidc') {
|
||||||
|
oauthOptions.queryParams = {
|
||||||
|
scope: 'openid profile email',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data, error } = await supabase.auth.signInWithOAuth({
|
const { data, error } = await supabase.auth.signInWithOAuth({
|
||||||
@ -207,7 +211,9 @@ export default function Login() {
|
|||||||
? 'github.com'
|
? 'github.com'
|
||||||
: provider === 'google'
|
: provider === 'google'
|
||||||
? 'accounts.google.com'
|
? 'accounts.google.com'
|
||||||
: 'facebook.com'
|
: provider === 'facebook'
|
||||||
|
? 'facebook.com'
|
||||||
|
: 'linkedin.com'
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (!window.location.href.includes(expectedDomain)) {
|
if (!window.location.href.includes(expectedDomain)) {
|
||||||
setError('OAuth redirect did not occur as expected')
|
setError('OAuth redirect did not occur as expected')
|
||||||
@ -231,6 +237,7 @@ export default function Login() {
|
|||||||
const signInWithGitHub = (nextPath = '/') => signInWithOAuth('github', nextPath)
|
const signInWithGitHub = (nextPath = '/') => signInWithOAuth('github', nextPath)
|
||||||
const signInWithGoogle = (nextPath = '/') => signInWithOAuth('google', nextPath)
|
const signInWithGoogle = (nextPath = '/') => signInWithOAuth('google', nextPath)
|
||||||
const signInWithFacebook = (nextPath = '/') => signInWithOAuth('facebook', nextPath)
|
const signInWithFacebook = (nextPath = '/') => signInWithOAuth('facebook', nextPath)
|
||||||
|
const signInWithLinkedIn = (nextPath = '/') => signInWithOAuth('linkedin_oidc', nextPath)
|
||||||
|
|
||||||
const testSupabaseConnection = async () => {
|
const testSupabaseConnection = async () => {
|
||||||
try {
|
try {
|
||||||
|
@ -93,7 +93,7 @@ export default function LoginCompact() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const signInWithProvider = async (provider: 'github' | 'google' | 'facebook') => {
|
const signInWithProvider = async (provider: 'github' | 'google' | 'facebook' | 'linkedin_oidc') => {
|
||||||
try {
|
try {
|
||||||
setIsSigningIn(true)
|
setIsSigningIn(true)
|
||||||
setError(null)
|
setError(null)
|
||||||
@ -104,6 +104,8 @@ export default function LoginCompact() {
|
|||||||
const oauthOptions: any = { redirectTo }
|
const oauthOptions: any = { redirectTo }
|
||||||
if (provider === 'facebook') {
|
if (provider === 'facebook') {
|
||||||
oauthOptions.queryParams = { scope: 'email' }
|
oauthOptions.queryParams = { scope: 'email' }
|
||||||
|
} else if (provider === 'linkedin_oidc') {
|
||||||
|
oauthOptions.queryParams = { scope: 'openid profile email' }
|
||||||
} else {
|
} else {
|
||||||
oauthOptions.queryParams = {
|
oauthOptions.queryParams = {
|
||||||
access_type: 'offline',
|
access_type: 'offline',
|
||||||
@ -288,6 +290,33 @@ export default function LoginCompact() {
|
|||||||
</svg>
|
</svg>
|
||||||
Facebook
|
Facebook
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
{/* LinkedIn */}
|
||||||
|
<button
|
||||||
|
onClick={() => signInWithProvider('linkedin_oidc')}
|
||||||
|
disabled={isSigningIn}
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
padding: '10px 16px',
|
||||||
|
border: '1px solid #d1d5db',
|
||||||
|
borderRadius: '8px',
|
||||||
|
backgroundColor: '#ffffff',
|
||||||
|
fontSize: '14px',
|
||||||
|
fontWeight: '500',
|
||||||
|
color: '#374151',
|
||||||
|
cursor: isSigningIn ? 'not-allowed' : 'pointer',
|
||||||
|
opacity: isSigningIn ? 0.6 : 1,
|
||||||
|
gap: '8px'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="#0A66C2">
|
||||||
|
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
|
||||||
|
</svg>
|
||||||
|
LinkedIn
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer */}
|
{/* Footer */}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user