使用WCF的离子自定义身份验证端点文档/示例

时间:2016-03-03 12:30:03

标签: wcf authentication asp.net-web-api ionic-framework jwt

我正在寻找有关Ionic端点自定义身份验证所需内容的更详细说明。 Ionic Custom Authentication。 如果可能的话,可以使用示例项目或教程。 然而,我看得很广泛,要么我的谷歌搜索技能已经死亡,或者没有更多的东西(从我能看到的)。

我已经使用'基本'设置对此进行了测试,但需要通过离子连接我自己的端点。如下所示:

    Ionic.Auth.login('custom', options, details).then(function (success) {
        console.log('Ionic Login Success:');
        console.log(success);
    }, function (failure) {
        console.error('Ionic Login Failure: ' + failure.response.body.error.message);
    });

一些背景知识 我有一个Ionic Cordova应用程序,可以连接/验证我的WCF Web API(通过执行一些登录/身份验证过程)然后检索登录用户的数据。我需要将其转换为Ionic Auth。 PS。我没有使用JWT的经验,并且已经在我的WCF服务上安装了System.IdentityModel.Tokens.Jwt包。

任何信息都表示赞赏。 提前谢谢!

  

我知道这个问题缺乏一些细节但是在我知道更多之前我无法提供更多信息

1 个答案:

答案 0 :(得分:2)

Ionic团队添加了三个演示自定义后端的示例项目。这三个是表达烧瓶 golang 。我设法通过查看后端的server part为CakePHP 2.6.x设置了后端。

你应该能够将一些东西放在一起,因为它不是魔法。我添加了一些PHP snipplet,它们应该向您展示如何使用您的特定语言:

  • 从网址获取redirect_uri参数并保存
  • 从网址获取state参数并保存
  • 从网址获取token参数并保存
  • 将您的共享密钥保存到变量中
  • 使用HS256算法解码JWT令牌

解码后的令牌的结构应如下所示:

"decoded_array": {
   "data": {
     "password": "someString",
     "email": "some@email.com"
   },
   "exp": 1457731231,
   "app_id": "your app id"
}
  • 现在检查数据库中是否有用户(进行身份验证)
  • 如果身份验证不成功,请返回UnauthorizedException(401)
  • 如果身份验证成功,请创建一个名为payload的新变量。这应该包含您数据库中的user_id

    $payload = array('user_id' => $user['User']['id']);
    
  • 现在通过创建新的JWT令牌,使用您的sharedSecret字符串对有效负载进行编码:

$outgoingToken = JWT::encode($payload, $sharedSecret);

  • 重定向回离子:

    $ url = $ redirectUri。 '&安培;令牌=' 。 $ outgoingToken。 '&安培;状态=' 。 $ state。 '&安培; REDIRECT_URI = https://api.ionic.io/auth/integrations/custom/success&#39 ;; $这 - >重定向($ URL);

查看这个Github项目:https://github.com/driftyco/custom-auth-examples

您还可以在此处查看我的PHP实施:https://www.doonot.com/custom-auth-backend-for-ionic-auth-using-cakephp/