去掉链接中openId

在实际开发中,容易出现暴露用户的openid,为了防止openid滥用或者盗用,隐藏openid有时是非常必要的(链接传参的处理方法),采用js截取,然后修改浏览器中的链接


/**
 * 处理openid暴露问题
 * @returns
 */
function funcUrlDel(){
	var name = "openid";
    var loca = window.location;
    var baseUrl = loca.origin + loca.pathname + "?";
    var query = loca.search.substr(1);
    if (query.indexOf(name)>-1) {
        var obj = {}
        var arr = query.split("&");
        for (var i = 0; i < arr.length; i++) {
            arr[i] = arr[i].split("=");
            obj[arr[i][0]] = arr[i][1];
        };
        delete obj[name];
        var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&");
        return url;
        //self.location.href = url;
    };
}
var newurl = funcUrlDel();
if(!isEmpty(newurl)){
	window.history.pushState({}, 0, newurl);
}

 

 

在Web View获取OpenID通常是在移动应用嵌入H5页面,而H5通过OAuth协议与微信、QQ等第三方登录服务交互。以下是基本步骤: 1. **初始化Web View**:首先,在Android或iOS创建一个WebView,并配置好加载URL,例如初始加载的是第三方登录的授权页面。 ```java (Android): webView.loadUrl("https://open.weixin.qq.com/connect/oauth2/authorize..."); ``` ```swift (iOS): if let url = URL(string: "https://open.weixin.qq.com/connect/oauth2/authorize...") { webView.loadRequest(URLRequest(url: url)) } ``` 2. **处理授权回调**:当用户在浏览器完成授权并返回时,需要监听`WKNavigationDelegate`(iOS)或`WebViewClient`(Android)的回调,从获取OpenID: ```java (Android): webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 如果url包含授权结果,解析并提取OpenID if (url.contains("code=")) { parseOpenIdFromUrl(url); } return true; } }); ``` ```swift (iOS): webView.navigationDelegate = self func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { guard let request = navigationAction.request as? URLRequest else { return } if request.url?.hasString("code=") != nil { parseOpenIdFromRequest(request) } decisionHandler(.allow) } ``` 3. **解析OpenID**:在回调,检查URL或请求参数包含的OpenID信息,并将其存储到本地或发送给服务器。 注意,实际过程可能会因为各个平台和库的不同而略有差异,也可能需要遵守各平台的安全策略和API规范。另外,为了安全起见,OpenID通常会在后端服务器上验证,而不是直接在客户端处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值