我的身份验证流程如下......
在用户登录后,我在Auth0中运行自定义规则以检测他们是否是新用户。如果yes
我现在想将它们重定向到自定义页面以收集一些其他数据。我这样做是在规则中实现以下内容:
function(user,context,callback){ context.redirect = { 网址:' http://www.example.com/profile' };
回调(null,user,context); }
这会将用户重定向回我的网站,在查询字符串中添加?state=xyz...
。
但是,此时我没有令牌或身份令牌,似乎无法识别用户。
Auth0上给出的示例讨论了如何使用此流程强制用户在登录时更新其密码。但是,为了使其工作,必须有一些方法来识别他们被重定向到的页面上的用户。
让这项工作最好的方法是什么?
答案 0 :(得分:0)
以下是规则中的一个片段,用于将用户重定向到后验证注册页面。只需粘贴与更改context.redirect
相关的部分,因为这就是您所询问的内容。
var hasPostRegistered = user.app_metadata && user.app_metadata.has_post_registered;
// redirect to consent form if user has not yet consented
if (!hasPostRegistered && context.protocol !== 'redirect-callback') {
var auth0Domain = auth0.baseUrl.match(/([^:]*:\/\/)?([^\/]+\.[^\/]+)/)[2];
var userId = user.user_id;
context.redirect = {
url: configuration.REGISTRATION_FORM_URL +
(configuration.REGISTRATION_FORM_URL.indexOf('?') === -1 ? '?' : '&') +
'auth0_domain=' + encodeURIComponent(auth0Domain) +
'&user_id=' + encodeURIComponent(userId)
};
}
注意user_id
如何被标记为查询参数。
另请注意,您可以在规则中对JWT令牌进行自签名,然后将其发送到重定向端点,该端点又可以配置为读取/验证JWT令牌以确保重定向的安全。