使用 WCF 的 Ionic 自定义身份验证终结点文档/示例



我正在寻找有关我的端点对 Ionic 自定义身份验证所需的更详细的描述。离子自定义身份验证。如果可能,请遵循示例项目或教程。然而,我已经广泛地研究了,要么我的谷歌搜索技能已经死了,要么那里没有更多的东西(从我所看到的)。

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

    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(通过对登录/身份验证过程进行一些黑客攻击),然后检索登录用户的数据。我需要将其转换为离子身份验证。我没有使用JWT的经验,并且已经在我的WCF服务上安装了System.IdentityModel.Tokens.JWT包。

任何信息不胜感激。提前感谢!

我知道

这个问题缺少一些细节,但在我知道更多之前我不能提供更多

Ionic 团队添加了三个示例项目来演示自定义身份验证后端。这三个是快递烧瓶果朗。我设法通过查看后端的服务器部分为 CakePHP 2.6.x 设置了一个后端。

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

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

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

"decoded_array": {
   "data": {
     "password": "someString",
     "email": "some@email.com"
   },
   "exp": 1457731231,
   "app_id": "your app id"
}
  • 现在检查您的数据库中是否有用户(执行身份验证)
  • 如果身份验证不成功,则返回未经授权的异常 (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';$this->重定向($url);


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

你也可以在这里查看我的PHP实现:https://www.doonot.com/custom-auth-backend-for-ionic-auth-using-cakephp/