gpt4 book ai didi

ios - 在 Alamofire 请求参数中传递 CSRF token

转载 作者:行者123 更新时间:2023-11-28 15:13:31 30 4
gpt4 key购买 nike

我想在我的网站上登录一个用户,该用户的登录表单中有一个 CSRF token 。我在 IOS 上将 Alamofire 与 Swift 结合使用。

表单代码如下:

                   <form id="login-form" class="body" action="login" method="post">

<div class="form-group label-floating">
<label class="control-label" for="username">Identifiant</label>
<input id="username" type="text" name="username" class="form-control" required/>
</div>

<div class="form-group label-floating">
<label class="control-label" for="password">Mot de passe</label>
<input id="password" type="password" name="password" class="form-control"
required/>
</div>

<div class="footer">
<div class="col-md-offset-3 col-md-6">
<input type="hidden" id="csrf_token" name="_csrf"
value="7cf3b95d-1310-4d00-b1b2-7040340b12e6"/>
<button type="submit" class="btn btn-lg btn-primary btn-block">
Connexion
</button>
</div>
</div>
</form>

我创建了一个返回 CSRF token 的函数。然后我调用另一个函数来记录用户的凭据和 CSRF token 。

这是这个函数:

func login(token: String, completion: @escaping (_ success: Bool) -> Void) {

let customerURL = "https://mywebsite.com/uaa/login"
let user = "username"
let password = "password"
let parameters = [ "username" : user, "password" : password, "Authorization" : token]

Alamofire.request(customerURL, method: .post, parameters: parameters, encoding: JSONEncoding.default)

.responseString { response in

switch response.result {
case .success:
print("Validation Successful")
if let JSON = response.result.value {
print(JSON)
}
case .failure(let error):
print(error)

}
}
}

但是当我运行我的应用程序时,这是我得到的:

{"timestamp":1510425797543,"status":403,"error":"Forbidden","message":"Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'.","path":"/uaa/login"}

有什么想法吗?预先感谢您的帮助!

最佳答案

'null' was found on the request parameter '_csrf'

我看到您正在使用“授权”名称作为参数,而从“_csrf”读取它的 API compline 将参数名称从“授权”更改为“_csrf”

来自

let parameters = [ "username" : user, "password" : password, "Authorization" : token]

let parameters = [ "username" : user, "password" : password, "_csrf" : token]

关于ios - 在 Alamofire 请求参数中传递 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47241635/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com