帆软报表决策系统 第三方token登录

楼主
插件开发者
有时候可能我们想使用第三方得数据来进行登录,此时需要使用平台得/login/third/auth接口来实现第三方得数据登录。第三方登录需要三个参数:username,password,thirdToken,需要实现AccessProvider扩展来进行对第三方数据进行校验。
js代码:
  1. var thirdLogin = function(){
  2.             $.ajax({
  3.                 url: "/webroot/decision/login/third/auth",
  4.                 type: "POST",
  5.                 contentType: "application/json",
  6.                 data: JSON.stringify({ "username": $("#_userName3").val(), "password": $("#_pwd3").val(), "thirdToken":$("#_token").val()}),
  7.                 dataType: "json",
  8.                 cache: !1,
  9.                 async: !0,
  10.                 error: function (err) {
  11.                     console.log(err)
  12.                 },
  13.                 complete: function (e, t) {
  14.                     console.log(e.responseText)
  15.                     if ("success" == t) {
  16.                         data = JSON.parse(e.responseText)
  17.                         console.log(data)

  18.                         document.cookie = "fine_auth_token=" + data.data + "; path=/";
  19.                         // $.cookie('fine_auth_token', data.data.accessToken, {  path: '/' });
  20.                         window.location.href = "/webroot/decision"
  21.                     }

  22.                 }
  23.             })
  24.         }
复制代码


AccessProvider扩展得实现:
  1. package com.fr.plugin.accessProvider;

  2. import com.fr.decision.fun.impl.AbstractAccessProvider;
  3. import com.fr.log.FineLoggerFactory;

  4. public class ThirdLoginAccessProvider extends AbstractAccessProvider {

  5.     @Override
  6.     public String auth(String username, String password, String ticket) {
  7.         FineLoggerFactory.getLogger().info("第三方登录,根据用户名,密码,token来实现自己得逻辑,最后返回一个决策系统中有得用户");
  8.         /**
  9.          根据第三方数据进行校验,最后需要返回一个决策系统中存在得用户得用户名
  10.          */

  11.         if("admin123".equals(username)){
  12.             return "admin";
  13.         }
  14.         return username;
  15.     }

  16.     @Override
  17.     public boolean access(String s, String s1, String s2) {
  18.         FineLoggerFactory.getLogger().info("第三方登录");
  19.         return true;
  20.     }
  21. }
复制代码


分享扩散:

沙发
发表于 2021-11-17 16:10:28
老师,我用你的代码提示错误,我的项目里没有你import 的类。如:
   import com.fr.decision.fun.impl.AbstractAccessProvider;
import com.fr.log.FineLoggerFactory;   这要怎么做
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 3关注人数 6465浏览人数
最后回复于:2021-11-17 16:10

任务进行中

    话题进行中...
    返回顶部 返回列表