如何在ionic应用程序中正确实现单点登录
how to properly implement single sign in inside ionic app
我正在尝试在ionic应用程序中实现单一登录;这样,当用户在除注销之外的第一次登录时,他应该可以直接访问该应用程序,而不必多次登录。
只有在用户被引导到应用程序页面之前,他才能看到,短暂的启动屏幕,然后短暂的登录页面,最后是我希望他在应用程序午餐时看到的正确页面。
我有一个名为UserService
的服务,它在第一次登录时将用户数据保存到本地存储中。
然后我检查了UserService中是否存在数据,如果是,请将用户带到应用程序页面,否则请按照正常登录流程进行登录。这是在app.js
内部运行时完成的,就像一样
.run(function($ionicPlatform, $rootScope, $ionicHistory, $state, UserService,localStorage)
{
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard)
{
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar)
{
StatusBar.styleDefault();
}
// implement single sign on here
user = UserService.getUser().loggedInUserId;
if(user !==undefined )
{
console.log("user exists")
$state.go('app.apppage');
}
else
{
console.log("user does not exist")
}
})
}
如有任何帮助,将不胜感激
这可以通过代码处理splashscreen来实现。
添加防溅屏插件
cordova plugin add https://github.com/apache/cordova-plugin-splashscreen.git
禁用config.xml 中的AutoHideSplashScreen属性
<preference name="AutoHideSplashScreen" value="false" />
然后修改旅游代码如下,
.run(function($ionicPlatform, $rootScope, $ionicHistory, $state, UserService,localStorage, $timeout)
{
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard)
{
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar)
{
StatusBar.styleDefault();
}
// implement single sign on here
user = UserService.getUser().loggedInUserId;
if(user !==undefined )
{
console.log("user exists")
$state.go('app.apppage');
}
else
{
console.log("user does not exist")
}
//====================
// hide splash screen
//====================
$timeout(function() {
// clear history to prevent the user from navigating back to login page
$ionicHistory.clearHistory();
navigator.splashscreen.hide();
}, 1000);
//=======================
})
}
希望能有所帮助。
相关文章:
- 在什么情况下我们需要在javsacript中实现单例类
- 单点高库存滚动条问题
- 使用可排序项实现轮班点击
- Javascript删除除前导字符、单点字符和数字以外的所有字符
- 如何在ionic应用程序中正确实现单点登录
- C#网格视图从动态创建的DataTable中实现可点击单元格
- 高图表没有点标记,但显示单点或不连续点
- 不显示高图表单点数据
- 带有 Firefox 的 Surface Pro 3 - 具有单点触摸触发器触摸/鼠标事件,而不是滚轮事件
- 如何在免费的jqGrid 4.13.0中实现单击复选框
- 单点高图表上的多个数据点
- 表单点击功能可在提交前检查变量
- 我如何实现根据点击按钮提交此表单的 JavaScript
- 如何使用 Dropbox 的单点登录
- 为什么要实现产品点击事件
- 如何在 jQuery 中的互斥复选框上实现单击事件
- 使用 javascript 模拟多个表单点击
- 如何实现标签点击事件
- 如何使用paper.js实现多点触摸交互
- 如何实现基于活动目录的电子单点登录