MCPcopy
hub / github.com/parse-community/parse-server / loadAuthAdapter

Function loadAuthAdapter

src/Adapters/Auth/index.js:145–206  ·  view source on GitHub ↗
(provider, authOptions)

Source from the content-addressed store, hash-verified

143}
144
145function loadAuthAdapter(provider, authOptions) {
146 // providers are auth providers implemented by default
147 let defaultAdapter = providers[provider];
148 // authOptions can contain complete custom auth adapters or
149 // a default auth adapter like Facebook
150 const providerOptions = authOptions[provider];
151 if (
152 providerOptions &&
153 Object.prototype.hasOwnProperty.call(providerOptions, 'oauth2') &&
154 providerOptions['oauth2'] === true
155 ) {
156 defaultAdapter = oauth2;
157 }
158
159 // Default provider not found and a custom auth provider was not provided
160 if (!defaultAdapter && !providerOptions) {
161 return;
162 }
163
164 const adapter =
165 defaultAdapter instanceof AuthAdapter ? new defaultAdapter.constructor() : Object.assign({}, defaultAdapter);
166 const keys = [
167 'validateAuthData',
168 'validateAppId',
169 'validateSetUp',
170 'validateLogin',
171 'validateUpdate',
172 'challenge',
173 'validateOptions',
174 'policy',
175 'afterFind',
176 ];
177 const defaultAuthAdapter = new AuthAdapter();
178 keys.forEach(key => {
179 const existing = adapter?.[key];
180 if (
181 existing &&
182 typeof existing === 'function' &&
183 existing.toString() === defaultAuthAdapter[key].toString()
184 ) {
185 adapter[key] = null;
186 }
187 });
188 const appIds = providerOptions ? providerOptions.appIds : undefined;
189
190 // Try the configuration methods
191 if (providerOptions) {
192 const optionalAdapter = loadAdapter(providerOptions, undefined, providerOptions);
193 if (optionalAdapter) {
194 keys.forEach(key => {
195 if (optionalAdapter[key]) {
196 adapter[key] = optionalAdapter[key];
197 }
198 });
199 }
200 }
201 if (adapter.validateOptions) {
202 adapter.validateOptions(providerOptions);

Callers 3

getValidatorForProviderFunction · 0.85
getProvidersFunction · 0.85

Calls 3

loadAdapterFunction · 0.85
toStringMethod · 0.80
validateOptionsMethod · 0.45

Tested by

no test coverage detected