angular - 在 NativeScript 中 SSO 后如何从 WebView 取回令牌?
问题描述
我正在使用 NativeScript 和 Angular 8 编写应用程序。该应用程序将在 Android 和 iOS 上运行。我正在考虑将单点登录技术应用到我的应用程序中。
我们不会使用 Facebook、Google 等社交方法进行登录,因为我们正在为 B2B 目的编写企业应用程序。
我们将使用 IdentityProvider 和 OpenID Connect。
我将从我的后端服务器获取一个 URL 并将其显示在本地浏览器中,以便客户可以决定他们想要使用的 SSO 服务。
我考虑过使用这个插件来帮助 SSO:https ://market.nativescript.org/plugins/oauth2-oidc-client
我已经实现了一个简单的页面,该页面将使用登录页面定向到 WebView。如何从此 web 视图取回 SSO 令牌?
<ActionBar title="SSO Page" class="action-bar">
<NavigationButton android.systemIcon="ic_menu_back" (tap)="goBack()"></NavigationButton>
</ActionBar>
<StackLayout class="page">
<Webview
(loadStarted)="loadStarted($event)"
(loadFinished)="loadFinished($event)"
src="https://docs.nativescript.org/">
</Webview>
</StackLayout>
解决方案
getToken()
必须返回 AuthService 上的令牌。您应该能够在homeRoute
通话中访问它。
homeRoute: () => {
console.log(this.authService.getToken());
this.router.navigate(["/home"], { clearHistory: true });
},
注意:该插件一年没有更新并且仍然使用旧版本的 RxJS,如果您使用的是较新版本的 Angular / RxJS,您可能需要兼容库。
推荐阅读
- python - 等效于 Python SDK 的 GCP Cloud Shell 命令
- python - TypeError:'dict' 对象不支持 cur.execute 中的索引
- machine-learning - 蒙特卡洛辍学不会以任何速度改变任何事情
- c# - 如何通过新对象设置对象并影响所有引用
- r - 基于 dplyr 中的字符串(或字符串向量)应用过滤器向量
- sqlite - 为什么这个 SQLite UPDATE 语句将更改写入表中的所有记录?
- java - 当数字输入大于 100 时,如何重现此模式?
- r - R中的基本矩阵乘法函数
- texmaker - TexMaker 在打开/保存窗口中仅显示正方形
- python - BeautifulSoup 抓取 span class="value"