parent
a82d3f310e
commit
e3c6b60211
|
@ -2,7 +2,6 @@ import { generateGlobalUserID } from "../../../db"
|
|||
import { authError } from "../utils"
|
||||
import * as users from "../../../users"
|
||||
import * as context from "../../../context"
|
||||
import fetch from "node-fetch"
|
||||
import {
|
||||
SaveSSOUserFunction,
|
||||
SSOAuthDetails,
|
||||
|
@ -97,28 +96,13 @@ export async function authenticate(
|
|||
return done(null, ssoUser)
|
||||
}
|
||||
|
||||
async function getProfilePictureUrl(user: User, details: SSOAuthDetails) {
|
||||
const pictureUrl = details.profile?._json.picture
|
||||
if (pictureUrl) {
|
||||
const response = await fetch(pictureUrl)
|
||||
if (response.status === 200) {
|
||||
const type = response.headers.get("content-type") as string
|
||||
if (type.startsWith("image/")) {
|
||||
return pictureUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns a user that has been sync'd with third party information
|
||||
*/
|
||||
async function syncUser(user: User, details: SSOAuthDetails): Promise<SSOUser> {
|
||||
let firstName
|
||||
let lastName
|
||||
let pictureUrl
|
||||
let oauth2
|
||||
let thirdPartyProfile
|
||||
|
||||
if (details.profile) {
|
||||
const profile = details.profile
|
||||
|
@ -134,12 +118,6 @@ async function syncUser(user: User, details: SSOAuthDetails): Promise<SSOUser> {
|
|||
lastName = name.familyName
|
||||
}
|
||||
}
|
||||
|
||||
pictureUrl = await getProfilePictureUrl(user, details)
|
||||
|
||||
thirdPartyProfile = {
|
||||
...profile._json,
|
||||
}
|
||||
}
|
||||
|
||||
// oauth tokens for future use
|
||||
|
@ -155,8 +133,6 @@ async function syncUser(user: User, details: SSOAuthDetails): Promise<SSOUser> {
|
|||
providerType: details.providerType,
|
||||
firstName,
|
||||
lastName,
|
||||
thirdPartyProfile,
|
||||
pictureUrl,
|
||||
oauth2,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,10 +59,8 @@ export function ssoAccount(account: Account = cloudAccount()): SSOAccount {
|
|||
accessToken: generator.string(),
|
||||
refreshToken: generator.string(),
|
||||
},
|
||||
pictureUrl: generator.url(),
|
||||
provider: provider(),
|
||||
providerType: providerType(),
|
||||
thirdPartyProfile: {},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,9 +74,7 @@ export function verifiableSsoAccount(
|
|||
accessToken: generator.string(),
|
||||
refreshToken: generator.string(),
|
||||
},
|
||||
pictureUrl: generator.url(),
|
||||
provider: AccountSSOProvider.MICROSOFT,
|
||||
providerType: AccountSSOProviderType.MICROSOFT,
|
||||
thirdPartyProfile: { id: "abc123" },
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ export const user = (userProps?: Partial<Omit<User, "userId">>): User => {
|
|||
roles: { app_test: "admin" },
|
||||
firstName: generator.first(),
|
||||
lastName: generator.last(),
|
||||
pictureUrl: "http://example.com",
|
||||
tenantId: tenant.id(),
|
||||
...userProps,
|
||||
}
|
||||
|
@ -86,9 +85,5 @@ export function ssoUser(
|
|||
oauth2: opts.details?.oauth2,
|
||||
provider: opts.details?.provider!,
|
||||
providerType: opts.details?.providerType!,
|
||||
thirdPartyProfile: {
|
||||
email: base.email,
|
||||
picture: base.pictureUrl,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ export interface CreateAccountRequest {
|
|||
name?: string
|
||||
password: string
|
||||
provider?: AccountSSOProvider
|
||||
thirdPartyProfile: object
|
||||
}
|
||||
|
||||
export interface SearchAccountsRequest {
|
||||
|
|
|
@ -98,8 +98,6 @@ export interface AccountSSO {
|
|||
provider: AccountSSOProvider
|
||||
providerType: AccountSSOProviderType
|
||||
oauth2?: OAuthTokens
|
||||
pictureUrl?: string
|
||||
thirdPartyProfile: any // TODO: define what the google profile looks like
|
||||
}
|
||||
|
||||
export type SSOAccount = (Account | CloudAccount) & AccountSSO
|
||||
|
|
|
@ -21,7 +21,6 @@ export interface UserSSO {
|
|||
provider: string // the individual provider e.g. Okta, Auth0, Google
|
||||
providerType: SSOProviderType
|
||||
oauth2?: OAuth2
|
||||
thirdPartyProfile?: SSOProfileJson
|
||||
profile?: {
|
||||
displayName?: string
|
||||
name?: {
|
||||
|
@ -45,7 +44,6 @@ export interface User extends Document {
|
|||
userId?: string
|
||||
firstName?: string
|
||||
lastName?: string
|
||||
pictureUrl?: string
|
||||
forceResetPassword?: boolean
|
||||
roles: UserRoles
|
||||
builder?: {
|
||||
|
|
Loading…
Reference in New Issue