Search code examples
iosswiftcookiestokenalamofire

How to send token string (jwt) as Cookie in Alamofire Post request in swift?


I want to pass a token which is a jwt (json web token) something like

?eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsb2NhbGhvc3QiLCJzdWIiOiIxIiwiZXhwIjoxNDY1ODA0NzY2LCJuYmYiOjE0NjU4MDM1NjYsImlhdCI6MTQ2NTgwMzU2NiwianRpIjoiaCtuUGxmZU5xZ2xEaW5WTW1iRUZRNEVFZEM3VFFKNFBRNzQrTkdUbVJCST0iLCJmaXJzdF9uYW1lIjoiR29sYW0iLCJsYXN0X25hbWUiOiJTYW1kYW5pIiwiZGV2aWNlX2NvdW50IjoiMSIsInBhY2tfaWQiOiIxIiwicGFja190YWciOiJSIiwic3RkYXRlIjoiMjAxNi0wNi0xMiAxMzowNTowNSIsImV4ZGF0ZSI6IjIwMTYtMDctMTIgMTM6MDU6MDUiLCJkaXNjb3VudCI6IjAuODAiLCJkYXlyZW0iOiIyOCIsImRhdGFyZW0iOiIxMDAiLCJtZXRob2QiOiJyZWd1bGFyIiwicmVmIjoib0pKTlorWVZnTVFheEw5RmpTV3l6TUJSSCtvcnJRMTZ1YVpnYTl5TWJEWXVjZEZSOVQyXC96OEhEYlVUQVlSSjVDWGdFaHptbHlNRXV1SEdxQWorSVNRPT0ifQ.vNLenIyy1bdLShrNZHx7mKfbvJmDKsMEEsk2EIHYis0

and is in String format. I want to pass this token as Cookie to API in a Alamofire POST request. Please, any help would be appreciated.


Solution

  • You can try setting the HTTPCookieStorage in the session.

    Swift 2

    let properties = [
        NSHTTPCookieDomain: "httpbin.org",
        NSHTTPCookiePath: "/post",
        NSHTTPCookieName: "foo",
        NSHTTPCookieValue: "bar",
    ]
    
    let cookie = NSHTTPCookie(properties: properties)!
    manager.session.configuration.HTTPCookieStorage?.setCookie(cookie)
    

    Swift 3

    let properties = [
        HTTPCookiePropertyKey.domain: "httpbin.org",
        HTTPCookiePropertyKey.path: "/post",
        HTTPCookiePropertyKey.name: "foo",
        HTTPCookiePropertyKey.value: "bar",
    ]
    
    let cookie = HTTPCookie(properties: properties)!
    manager.session.configuration.httpCookieStorage?.setCookie(cookie)