使用离子和材料设计登录

Vit*_*sky 3 user-interface ionic-framework ionic-material

我有一个带有侧边菜单的离子项目.现在我想添加简单的方式和登录酷的形式,如 http://ionicmaterial.com/ 但问题我没有看到任何示例如何在激动人心的项目中添加它将首先加载登录表单然后将重定向到常规页面.我的项目看起来像:

app.config(function ($stateProvider, $urlRouterProvider) {
    $stateProvider

        .state('app', {
            url: "/app",
            abstract: true,
            templateUrl: "templates/menu.html",
            controller: 'AppCtrl'
        })
        .state('app.placeslists', {
            url: "/placeslists",
            views: {
                'menuContent': {
                    templateUrl: "templates/placeslists.html",
                    controller: 'PlaceslistsCtrl'
                }
            }
        })
Run Code Online (Sandbox Code Playgroud)

如何添加具有首先加载的身份验证(令牌)的登录页面,以及如何以简单的方式添加登录页面的材料.

谢谢!!!

Kar*_*mar 9

要实现登录,您需要这些东西

  1. 登录状态
  2. 登录模板
  3. 处理令牌的逻辑

 $stateProvider
            .state('Login', {
                url: "/Login",
                templateUrl: "app/templates/Login.html"
            })
Run Code Online (Sandbox Code Playgroud)
<ion-view view-title="Login" align-title="left">
    <ion-content style="background: url(img/login.jpg) center; background-size: cover;">
        <div class="hero no-header flat">
            <div class="content">
                <div class="app-icon"></div>
                <h1>Thronester</h1>
            </div>
        </div>
        <div class="list">
            <ion-md-input placeholder="Username" highlight-color="balanced" type="text" ng-model='user.username'></ion-md-input>
            <ion-md-input placeholder="Password" highlight-color="energized" type="password" ng-model='user.password'></ion-md-input>
        </div>
        <div class="padding">
            <button ui-sref="app.profile" class="button button-full button-assertive ink">Login</button>
        </div>
        <div class="button-bar social-login">
            <button class="button button-small button-border icon-left ion-social-google button-assertive-900" ng-click='DoLogin(user)'>Login</button>
            
        </div>
    </ion-content>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

在您的DoLogin功能中,您需要处理命中您的API以进行登录,并接收您的令牌.您需要存储此令牌.我使用SQLlite插件将我的令牌存储到令牌表中.有不同的存储令牌的方式.

  1. SQLite插件
  2. 本地存储
  3. 的WebSQL
  4. 文件ngCordova

还有更多,我可以使用SQLlite为您提供代码片段.

var DB = window.sqlitePlugin.openDatabase({name: "Token.db", location: 1})

var CreateQuery = 'CREATE TABLE IF NOT EXISTS Token (id integer primary key, access_token TEXT)'

var InsertQuery = 'INSERT INTO Token (access_token) VALUES (?)'
var selectQuery = 'SELECT access_token FROM Token WHERE id = 1'


var Token = // the token you get from your server, make a $http resquest and get it

    
    
$cordovaSQLite.execute( DB,CreateQuery ).then(function () {
     //table created  
})


$cordovaSQLite.execute(DB, InsertQuery, [Token]).then(function(){
 // token inserted into table
})


$cordovaSQLite.execute(DB, selectQuery).then(function (res) {
      //getting token from table
      $rootScope.TokenFromTable =  res.rows.item(0).access_token;
  })
                 
Run Code Online (Sandbox Code Playgroud)

不要只是从代码中复制粘贴(它不会工作),你需要构建逻辑放置所有这些代码的位置和顺序.

收到authToken后,您可以将其设置为所有$ http请求的公共标头,当用户单击注销时,只需删除表或删除数据库.(浏览链接中的博客)