有时候可能我们想使用第三方得数据来进行登录,此时需要使用平台得/login/third/auth接口来实现第三方得数据登录。第三方登录需要三个参数:username,password,thirdToken,需要实现AccessProvider扩展来进行对第三方数据进行校验。
js代码:
- var thirdLogin = function(){
- $.ajax({
- url: "/webroot/decision/login/third/auth",
- type: "POST",
- contentType: "application/json",
- data: JSON.stringify({ "username": $("#_userName3").val(), "password": $("#_pwd3").val(), "thirdToken":$("#_token").val()}),
- dataType: "json",
- cache: !1,
- async: !0,
- error: function (err) {
- console.log(err)
- },
- complete: function (e, t) {
- console.log(e.responseText)
- if ("success" == t) {
- data = JSON.parse(e.responseText)
- console.log(data)
- document.cookie = "fine_auth_token=" + data.data + "; path=/";
- // $.cookie('fine_auth_token', data.data.accessToken, { path: '/' });
- window.location.href = "/webroot/decision"
- }
- }
- })
- }
复制代码
AccessProvider扩展得实现:
- package com.fr.plugin.accessProvider;
- import com.fr.decision.fun.impl.AbstractAccessProvider;
- import com.fr.log.FineLoggerFactory;
- public class ThirdLoginAccessProvider extends AbstractAccessProvider {
- @Override
- public String auth(String username, String password, String ticket) {
- FineLoggerFactory.getLogger().info("第三方登录,根据用户名,密码,token来实现自己得逻辑,最后返回一个决策系统中有得用户");
- /**
- 根据第三方数据进行校验,最后需要返回一个决策系统中存在得用户得用户名
- */
- if("admin123".equals(username)){
- return "admin";
- }
- return username;
- }
- @Override
- public boolean access(String s, String s1, String s2) {
- FineLoggerFactory.getLogger().info("第三方登录");
- return true;
- }
- }
复制代码
|