我正在尝试使用Auth0和angular2(2.0.0-rc.6)实现无密码身份验证,使用angular2 webpack starter和Auth0锁无密码。
表单正常显示,身份验证电子邮件使用以下代码发送:
this.lock.magiclink({
callbackURL:"http://localhost:3000/#/sandbox"
});
问题发生在我单击电子邮件中的神奇链接之后:
>
即使魔术链接的redirect_uri看起来是正确的(redirect_uri=http://localhost:3000/#/sandbox),它也被忽略;
相反,在成功登录(签入Auth0日志)后,地址栏中的url(简短地):http://localhost:3000/#access_token=xxxxxxxxxx
然后(大约一秒钟后)它重定向到:http://localhost:3000/#/access_token
我的问题是:
经过一番挣扎,我找到了一个变通办法。
TL; DR;使用PathLocationStrategy(超文本标记语言5 pushState),而不是散列URL样式。
在Auth0控制台(客户端设置)的允许注销URL
和允许来源
下面,指定:
请注意,在验证这些URL时,查询字符串和哈希信息不会被考虑在内。
所以我想它可能也适用于允许的回调URL
,即使它没有被指定。
这可以解释为什么callbackURL
被忽略。
诀窍是摆脱URL中的哈希(#);哈希是Angular2 Webpack Starter中默认的LocationStrategy
。
要做到这一点,请在应用程序中。模块。ts
,更改路由模块。forRoot(路由,{useHash:true})
到RouterModule。forRoot(路由,{useHash:false})
虽然它应该工作,但我遇到了另一个问题:当你重新加载一个页面时,它会给出一个带有以下消息的空白页面:
<% if (webpackConfig.htmlElements.headTags) { %>
在谷歌搜索了一下之后,我在这个页面上找到了一个补丁。
修复方法是删除webpack-dev-server:"^2.1.0-beta.2"中的carret(^)(dev依赖,package.json),并重新安装包:
然后,在控制台/终端中,键入:npm安装webpack-dev-server
现在我所要做的就是更新callbackURL,如下所示:
this.lock.magiclink({
callbackURL:"http://localhost:3000/sandbox"
});
在Auth0客户端设置允许回调URL中,插入:
http://localhost:3000/sandbox
保存。
现在,在成功登录后(当我单击电子邮件中的神奇链接时),它将打开一个浏览器窗口,其中包含以下URL:
http://localhost:3000/sandbox#access_token=xxxxxxxxxxx&id_token=yyyyyyyyyyy&token_type=Bearer
它应该呆在那里。捕获和保存令牌现在应该很简单。。。
我正在尝试用以下方法重定向无效的URL 我不想使用解决浏览器支持问题。 我正在使用grunt serve进行本地前端开发和封装,并在生产中与spring boot一起运行。
本文向大家介绍Angular2内置指令NgFor和NgIf详解,包括了Angular2内置指令NgFor和NgIf详解的使用技巧和注意事项,需要的朋友参考一下 在这一章节中,我们来学习如何使用Angular2来展示数据,以及如何使用它的内置指令NgFor和NgIf 首先要确保你有一个可以运行起来的Angular2的样例程序,最好就是我们上一章节中完成的那个QuickStart小项目或者你自己根据官
我有一个返回< code>List的方法。现在我想知道如何正确放置< code>try/catch块。如果我将< code>return语句放在< code>try中,我会得到错误 并非所有代码路径都返回值 如果我放置在之后(就像我目前所做的那样),即使在之后,它也会返回。那么最好的方法应该是什么? 方法如下:
问题是,当比较这两个日期时,令牌将在大约17小时后过期,这是错误的,因为在生成时,令牌应该只长1分钟。 如果有人能帮助我,我非常感激
Paypal开始从沙盒返回此URL:
在直播管理页面点击 “回调设置” ,可以 开启回调通知 并 设置回调地址 ,用于直播开始、直播结束、直播录制、离线回放、回放重置后的通知反馈。 关于直播回调的具体功能及使用方法,请参考:回调接口开发指南 。