tablas formularios directivas dinamicas angularjs oauth oauth-2.0 angular-ui-router satellizer

angularjs - formularios - tablas angular 4



OAuth: ¿cómo establecer la URL de devolución de llamada dinámica? (4)

He incorporado Satellizer en mi aplicación con una variedad de proveedores de inicio de sesión social (Facebook, Twitter, Google). Mi stack está compuesto por: AngularJS (UI Router) y NodeJS / Express.

Parece que me encuentro con un desafío para configurar URL de devolución de llamada dinámicas para la autenticación del usuario. Mi aplicación no tiene una URL de inicio de sesión coherente como http://example.com/login porque todas mis URL son dinámicas y están basadas en token, por ejemplo: http://example.com/XH12aT1771 . En efecto, mi experiencia de usuario de inicio de sesión es una superposición modal y no hay ninguna página de inicio de sesión coherente.

El desafío con mi sistema para integrarme con OAuth es después de registrar al usuario en mi aplicación a través de la superposición modal, quiero volver a colocarlos en la sala (o token) en la que se encuentran, no redirigirlos a alguna página de URL de devolución de llamada como esto sería una experiencia de usuario pobre.

¿Es la única forma de hacer que mi URL de devolución de OAuth sea codificada, algo así como: http://example.com/success y luego redireccionar al usuario a su token después de que acierten a la página /success ? ¿Es esta la única manera de hacer tal cosa?

Avíseme si necesita más detalles de la pregunta, gracias por la ayuda.


No sabría sobre las opciones que le ofrece Sattelizer, y también dependería de las opciones admitidas por Authorization Server (AS), pero:

Desde una perspectiva de seguridad, es aconsejable utilizar una URL de devolución de llamada fija de todos modos para evitar algunos de los ataques que pueden ocurrir debido a una coincidencia de URL rota / descuidada en el lado AS o fugas de tokens accidentales a terceros en el lado RP debido a incrustado imágenes / iframes en páginas que no consumen el token, etc.

Entonces, independientemente de si hay alguna otra forma, sería una buena práctica de seguridad utilizar una URL de devolución de llamada fija de todos modos y (afortunadamente) asociar la URL original con el parámetro de estado que se envía o ponerla en una cookie y restaurarla después de consumirla el token en la URL de devolución de llamada.


No estoy familiarizado con Satelizer, pero después de una breve lectura, parece que hay una posibilidad de configurar la url de devolución de llamada después de iniciar sesión.

// Google $authProvider.google({ url: ''/auth/google'', authorizationEndpoint: ''https://accounts.google.com/o/oauth2/auth'', redirectUri: window.location.origin || window.location.protocol + ''//'' + window.location.host, scope: [''profile'', ''email'']; scopePrefix: ''openid''; scopeDelimiter: '' '', requiredUrlParams: [''scope''], optionalUrlParams: [''display''], display: ''popup'', type: ''2.0'', popupOptions: { width: 452, height: 633 } });

Aquí configuran el uri de redirección directamente a la ubicación, el usuario se encuentra actualmente en. Ver configuración del satelizador

¿No es esto lo que estás buscando?


Parece que la respuesta debería ser o lo que dijo kfis o ...

$authProvider.loginRedirect = ''/''; // Change this relative path

por - Satelizador


No estoy familiarizado con Satellizer, pero he creado una estructura de devolución de llamada dinámica basada en url.

$callback_url = Configure::read(''Your.base'') . ''connect/provider/signin/'' . $invite_code;

OAuturemos una URL única, que pone a alguien en una habitación específica.